我在课堂下面。
public class BaseRequest<T extends SomeObject> implements Serializable {
/**
* serial version UID
*/
private static final long serialVersionUID = 2602178514139825116L;
private Class<T> classType;
public BaseRequest(Class<T> classType){
this.classType=classType;
}
public Class<T> getClassType() {
return classType;
}
}
现在SomeObject的子类如下所示。
SomeObjectOne.java
SomeObjectTwo.java
SomeObjectThree.java
客户端实例化上面的类,如下所示。
BaseRequest request = new BaseRequest(SomeObjectTwo.class);
现在在服务方法中,我必须使用其get方法获取用户传递的类类型。
public void someServiceMethod(BaseRequest<T> request){
//here i need to get the corresponding exact class type using getter.
Class requestedDomainObjectType = request.getClassType();
//Now how can i type cast it to respective class type?
//Is it possible to get exact passed class type?
//I need to get wrapped .class from requestedDomainObjectType
//from requestedDomainObjectType i should get SomeObjectOne.class/SomeObjectTwo.class
}
答案 0 :(得分:0)
你不应该施展任何东西。由于方法getClassType()
是通用的,您应该能够写:
Class<T> requestedDomainObjectType = request.getClassType();
这行应该编制好,没有任何警告。