質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

16574閲覧

Javaで、変数名取得し出力したい

kenty

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/06/08 04:33

Java ```###前提・実現したいこと Javaのmainメソッド内で宣言した変数を、簡単に出力できるようなメソッドを作りたいです。 ###具体的に

public static void print(double x){
System.out.println("x = " + x);
}

というメソッドを使うときに、 mainメソッド内で

double x = 100;
double y = 200;
double z = 300;
print(x);
print(y);
print(z);

を入力したときの結果が

x = 100
y = 200
z = 300

と、自動で変数名も表示できるようなコードを追加したいです。 fieldクラスのメソッドを使うなども考えたのですが、うまくいきません。 解決方法はありませんか? (関係ないかもしれませんが、理想としては、メソッドは異なるクラスからimportしたいです)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ローカル変数を動的にアクセスすることを簡単に行えるかと言えば簡単ではないと思います。
クラスやインスタンスなどのメタ情報はある程度reflection機能を使うとアクセスできますが、ローカル変数まではアクセスできません。

それは例えばIDEがやっているようなJVMのデバッグインターフェースを用いれば可能かも知れませんが、走行中のメソッドから、何かのメソッドを呼び出して「呼び出し元メソッドのローカル変数を調べて表示する」というのは、簡単ではない気がします。どちらかというと曲芸の類になるような気がします・・・

参考:
Java Platform Debugger Architecture (JPDA)

投稿2017/06/08 04:56

編集2017/06/08 15:39
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenty

2017/06/08 15:12

やはり、ローカル変数へのアクセスは簡単なものではないのですね…助かりました、ありがとうございました。 参考にさせていただきます!
guest

0

doubleではなくて、連想配列にしてkeyに元変数名、valueに元数値を設定して、
printメソッドに連想配列を渡してやればよいのではないでしょうか。

投稿2017/06/08 04:38

s.t.

総合スコア2021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s.t.

2017/06/08 04:41

ごめんなさい、連想配列じゃなくてHashMapとかでした・・・
kenty

2017/06/08 15:13

連想配列というものがJavaにはあるのですね…今回の直接の解決ではありませんでしたが、他の開発の参考にさせていただきます、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問