- - PR -
変数名そのものをString型の中に入れたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-04 21:26
いつも勉強させていただいてます。
String shimei = "田中"; 基本データ型やString型の中身("田中")ではなく変数名そのもの("shimei")を文字列にしたいのですが、 そういったことはできますでしょうか。 System.out.println("変数shimeiには" + shimei + "が入っています"); としているところを、 System.out.println("変数" + class.変数名をString型にして返すメソッド(引数) + "には" + shimei + "が入っています"); という風にしたいです。 環境はStruts1.2.9 / Tomcat5.0 / Eclipse3.2を使っています。 よろしくお願いします。 | ||||
|
投稿日時: 2007-01-04 22:01
変数がフィールドを示すのかローカル変数を示すのかで変わります。
フィールドであれば、
という感じで取得できます。 (Fieldはjava.lang.reflect.Field、例外処理は省略・・・) ローカル変数の場合は無理です。 ローカル変数名はバイトコードの中にデバッグ情報として残されてはいますが、 ランタイム時には情報を取得することはできません。 実行されるバイトコードにはローカル変数名の概念がないためです。 | ||||
|
投稿日時: 2007-01-07 19:24
返信ありがとうございます。
ローカル変数として使いたかったのですが、無理なんですね…。 ローカル変数とクラス変数の細かな違いをあまり意識していなかったので、 勉強になりました。 ありがとうございました。 |
1