저는 Entity-System에서 작업하고 있습니다. 내 구성 요소에는 런타임에 구성 요소를 작성할 수 있도록 값 개체의 ArrayList가 포함되어 있습니다. 다음은 내 가치 클래스의 :Java의 제네릭 필드에 런타임 객체의 클래스를 전달합니다.
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<Double> v = new Value<Double>("xCoordinate");
을
Object o = new Double(42);
Value<o.getClass()> v = new Value<o.getClass>("theAnswer");
"o"라는 객체의 클래스를 Value 유형의 변수로 전달하려면 "o"의 런타임 표현에서 클래스를 가져올 수 없습니다.
42/theAnswer 쌍이 더글러스 아담스입니까? – tbodt
음, 분명히 그것은 ... –
일반 선언에 사용 된 유형 이름은'Class' 객체가 아닙니다. –