ループで「vx」のような変数を宣言して、ループするたびに x の値が変化するようにできるかどうか疑問に思っていました。ループが 5 回実行されると、変数の名前は v1、v2、v3、v4、v5 になります。
質問する
3207 次
3 に答える
1
基本的に、静的型付け言語である Java のループ内で変数名が異なる変数を宣言することはできません。
異なる名前のループ内で変数を宣言 (初期化) する意味はありません。結局のところ、スコープがループのすぐ内側にある場合、変数はスコープ外になり、破棄 (ガベージ コレクション) されます。
クラス変数を初期化する場合は、Reflection API を試すことができますが、多くの理由で避ける必要があります。
于 2013-09-17T18:15:16.993 に答える
0
Java では変数に動的に名前を付けることはできません。しかし、次のようにいくつかのことができます
List<String> dataList=new ArrayList<>(Arrays.asList("a","b"));
Map<String,String> map=new HashMap<>();
String preFix="var";
char postFix='1';
for(String i:dataList){
map.put(preFix+postFix,i);
postFix++;
}
System.out.println(map);
出力:
{var1=a, var2=b}
于 2013-09-17T18:18:19.097 に答える
0
Java は静的に型付けされているため、これは確かに不可能です。変数はコンパイル時に使用できる必要がありますが、実行時にループが実行されます。
于 2013-09-17T18:15:02.530 に答える