混合型にマップする HashMap を作成する方法を探しています。
たとえば、次は Python で機能します (Pythondict
は Java に似ていることに注意してくださいHashMap
)。
d = dict()
d["str"] = "This is a string"
d["flt"] = 1.23
d["int"] = 5
にアクセスするd[x]
と、適切な型 (この例では string、float、int) が返されます。
Java では、 を使用できますが、HashMap<String, Object>
各オブジェクトがどのタイプであるかをすぐに判断する方法は実際にはありません。
代わりに、私は現在MixedType
、オブジェクトを保持するクラスを作成するだけでなく、元の型情報も作成して、後でダウンキャストできるようにしようとしています。例えば:
public class MixedMap
public static class MixedType
{
public Class<?> cls;
public Object val;
public MixedType(Class<?> c, Object v)
{
this.cls = c;
this.val = v;
}
}
public static void main(String args[])
{
MixedType m1 = new MixedType(String.class, "This is a String");
System.out.println((m1.cls)m1.val);
}
}
これは私がやろうとしていることであることに注意してください:-)現在、それを訴えてコンパイルしていませんm1 cannot be resolved to a type
。
だから私の質問は、どうすればこれを修正できますか? 同じ目標を達成するための他の方法は歓迎されますが、これがコンパイラの型チェック能力を制限することを私に言って答えないでください-私はそれを知っており、それで問題ありません。
前もって感謝します。