2009-06-03 4 views
15

Javaは可変変数をサポートしていますか?このようなPHPのよう

<?php 
$a = 'hello'; 
$$a = 'world'; 

echo $hello; 
// Prints out "world" 
?> 

Iは、(それぞれのArrayListに配置されている)オンザフライでハッシュマップの未知数を作成する必要があります。より簡単なJava中心の方法があれば教えてください。ありがとう。

+12

私の頭が痛い、何が一体? –

答えて

12

あなたができることは、HashMapのHashMapを持つことです。たとえば、次のように

Map<String,Map<String,String>> m = new HashMap<String,Map<String,String>>(); 
// not set up strings pointing to the maps. 
m.put("foo", new HashMap<String,String>()); 
0

Javaでは変数変数と呼ばれません。

その反射と呼ばれます。

詳細については、java.lang.reflect package docsをご覧ください。

あなたはリフレクションを使用してこのようなことをすべて行うことができます。

Bestoes、

jrh。

+2

まあ、できますが、それは良い考えではありません。さまざまな理由、特にタイプの安全性とパフォーマンスのために、リフレクションは一般的に最後の手段として使用する必要があります。ここでは、マップを使用するだけで(他の回答に記載されているように)より適切です。 – sleske

+1

いいえ、OPは実行時に決定された名前の変数を作成する必要があります。しかし、実行時に変数名はありません。 – newacct

1

Javaは、PHPで行ったことをJavaでサポートしていません。

同様のことを行うには、List<Map<>>を作成してHashMapをそこに保存する必要があります。 HashMapsHashMapを使用できます。

Javaの '変数変数'は、配列やList、またはさまざまなサイズのデータ​​構造体です。

1

あなたは

List<Map<String,String> myMaps = new ArrayList<Map<String,String>>() 

ような何かをするだろうと、あなたのループの中で、あなたはどうしたら番号:

Map<String,String> newMap = new Hashtable<String,String>(); 
//do stuff with newMap 
myMaps.add(newMap); 
0

あなたがすることはできません!

これに直接的な方法はありません。配列や反射などが役立ちます。

関連する問題