私はこのクラスを持っています
public class Register{
String name;
int value;
int lockedValue = 0;
Registro(String name){ this.name = name; }
public int getValue(){ return value; }
// rest of get and set methods
}
とメインクラス
public class Simulator{
static Register $t0, $t1, $t2;
public static void main(String[] args) throws IOException {
$t1 = new Register("$t1");
$t1.setValue(15);
$t2 = new Register("$t2");
$t2.setValue(20);
// here i can get values by $t1.getValue()
}
}
次のString
ように、?を使用して値を取得できます。
String nameRegister = "$t1";
int fetchValue = nameRegister.getValue();
文字列ベースの名前でオブジェクトを「識別」したいようです。その場合、Javaの適切なデータ構造はMapです。あなたの場合、あなたは次のようなものが必要になります:
Map<String, Integer> registry = new HashMap<>();
registry.put("t1", 15);
registry.put("t2", 20);
そして後であなたはこれを使用してクエリすることができます
Integer value = registry.get("t1");
「任意の」値を保存したい場合は、Map<String, ? extends Object>
ただしを使用することができます/使用する必要があります。しかし、そもそもそれは必ずしも良いアプローチではありません。ジェネリックスが提供するコンパイル時のチェックをすべて失うと。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加