正如您将在下面看到的。我正在编写一个名为 Property 的类,它可以绑定到任何 Serializable 类型,从类描述中可以看出。
T
现在属性中的值在编译期间自动绑定为类型。
我想实现一个Class getType()
应该Class
在运行时返回值的对象的方法,即
Property<String> p = new Property<String>();
Class<String> cl = p.getType();
在这里,我希望 cl 是 String.class。当然一种方法是:
return value == null ? null : value.getClass();
问题是它不会反映在返回的类型中并返回Class
对象的原始类型。理想情况下,我希望它是类型Class<String>
public class Property<T extends Serializable> implements Serializable {
private T value = null ;
private String name = null ;
private boolean dirty = false ;
private Entity parent = null ;
public Class getType() {
// Here I want to determine the type of T that this object is bound to ?
return class;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isDirty() {
return dirty;
}
public void setDirty(boolean dirty) {
this.dirty = dirty;
}
public Entity getParent() {
return parent;
}
public void setParent(Entity parent) {
this.parent = parent;
}
}