0

ループで「vx」のような変数を宣言して、ループするたびに x の値が変化するようにできるかどうか疑問に思っていました。ループが 5 回実行されると、変数の名前は v1、v2、v3、v4、v5 になります。

4

3 に答える 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 に答える