0

クラスmyClassString myString. どうすればいいですか:

myClass [value of myString] = new myClass;
4

4 に答える 4

2

Java では動的変数を使用できません。それでも、 a を使用しMap<String, Object>て をString myStringキーとして使用し、新しい値をクラスの新しいインスタンスとして設定できます。

Map<String, Object> map = new HashMap<String, Object>();
map.put(myString, new MyClass());

マップにインスタンスのみが含まれていることが確実な場合はMyClass、 を使用できますMap<String, MyClass>

Map<String, MyClass> map = new HashMap<String, MyClass>();
于 2013-03-27T22:52:13.610 に答える
1

文字列変数の値を変数名として使用することはできません。Java はそれを許可しません。

ただし、 を使用するとMap、文字列を (キーとして) 値に関連付けることができます。

Map<String, MyClass> map = new HashMap<String, MyClass>();
map.put(myString, new MyClass());

それはまさにあなたが探しているものではありませんが、Java では、あなたが得ようとしているのと同じくらい近いものです。

于 2013-03-27T22:52:15.420 に答える
0

ジェネリックを使用して、型パラメーターを持つ基本クラスを作成するのはどうですか

public MyGenClass<K,V>{
 private Map<K,V> map = new HashMap<K,v>();

 public Map<K,V> getMap(){
  return map;
 }

 public void setMap(Map<K,V> iMap){
   map=iMap;
 }

}

このクラスを使用すると、同様のメソッドを使用しながら、さまざまな種類のマップを簡単に取得できます。

楽しい :)

于 2013-03-27T23:00:28.323 に答える
0

Objectマップを使用して、によってインデックス付けされたを保存しますString

public static void main(String[] args) {
    final String myString = "something";
    final Map<String, Object> map = new HashMap<String, Object>();
    map.put(myString, new Object());
}
于 2013-03-27T22:52:47.057 に答える