• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:get時に・・・)

Javaプログラムでの文字列表示とクラス間の通知方法について

このQ&Aのポイント
  • Javaプログラムにおいて、他のクラスからgetメソッドで文字列を表示させる方法について教えてください。
  • また、setおよびgetメソッドが呼ばれた際に、どのクラスから呼び出されたかを判別する方法についても教えてください。
  • 既に調査をしているが、解決策を見つけられていないため、アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shinjif
  • ベストアンサー率33% (30/90)
回答No.1

ちょっと、最近コーディングからは遠ざかっているので間違っていたらごめんなさい。 1)の方は、 public getKuruma(){ Test te = new Test(); te.ugoki("getされました"); ということではないのですか?ちょっと質問の意味がよくわかりませんでした。 2)についてですが、これはデバッグ用に使うテクニックの一つですが・・・ import java.lang.Exception; public getKuruma(){ Exception ex = new Exception(); System.out.println(ex.toString()); return kuruma; } こうやって、わざとException インスタンスをnewして、それをtoString()すると、今実行されているクラス名、メソッド名、ソースコード上での行番号から始まり、そのメソッドを呼んでいるクラスのクラス名、メソッド名、行番号、そのメソッドを呼んでいるクラス名、メソッド名、行番号・・・ といった具合に、コードのスタックが取得できます。 各スタックが1行になっているので、2行目辺りを見れば、getKuruma()を呼んでいるクラスの情報が記述されているはずです。そこから余計な部分を削除する文字列編集ロジックを用意すれば、クラス名だけが取得できるはずです。

takuya_m
質問者

お礼

自分でも並行して調べてたのですが、解決できました。 結局は、自分の理解不足でした。 今回は、回答、本当にありがとうございました。

takuya_m
質問者

補足

回答ありがとうがざいます。 1つ記述のあやまりがありました。 訂正します。 public getKuruma(){ Test te = new Test(); ・・・ ではなく、 public String getKuruma(){ Test te = new Test(); でした。 そして、私も、shinjifさんのように、 public String getKuruma(){ Test te = new Test(); te.ugoki("getされました"); のようにしたのですが、 public String getKuruma(){ ←メソッドが値を返しません Test te = new Test();    ←ステートメントには到達できません te.ugoki("getされました"); とコンパイルエラーが出てしまいます。 この意味が理解に欠けています。 自分でも並行して理解しようとしてるのですが・・。 よろしくお願いします。

関連するQ&A