从泛型类类型中检索特定的类类型?

时间:2014-02-10 07:45:32

标签: java

我在课堂下面。

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

        }

1 个答案:

答案 0 :(得分:0)

你不应该施展任何东西。由于方法getClassType()是通用的,您应该能够写:

Class<T> requestedDomainObjectType = request.getClassType();

这行应该编制好,没有任何警告。