私はエンティティシステムに取り組んでいます。コンポーネントには Value-Object の ArrayList が含まれているため、実行時にコンポーネントを構築できます。これが私の値クラスです:
public class Value<V> implements Cloneable{
private V value = null;
private String name;
public Value()
{
}
public Value(String name)
{
this.name = name;
}
public V getValue()
{
return value;
}
public void setValue(V value)
{
this.value = value;
}
@Override
public boolean equals(Object o)
{
return name.equals(((Value)o).name);
}
@Override
public Value clone()
{
return new Value<V>(new String(name));
}
}
Value-Object を Double で埋めたいとしましょう (これはうまくいきます):
Value<Double> v = new Value<Double>("xCoordinate");
なぜ私はこれを行うことができません:
Object o = new Double(42);
Value<o.getClass()> v = new Value<o.getClass>("theAnswer");
オブジェクト「o」のクラスを変数型に渡したいのですが、値の場合、「o」の実行時表現からクラスを取得できないのはなぜですか。