如何在Java中找到一个类型变量?

时间:2015-05-13 13:37:02

标签: java reflection

如何通过Java中的Reflection API找到XOperation的类?

public interface Operation<P extends Parameters> {
}

public class XParameters implements Parameters<XOperation> {
}

我正在尝试实施此方法。

public <O extends Operation<P>, P extends Parameters> O getOperationByParametersClass(Class<P> parametersClass) {
    // TODO
}

1 个答案:

答案 0 :(得分:2)

您可以在Parameters中引入一个包含type-parameter Class的成员。

例如:

abstract class Parameters<T> {
    protected Class<T> type;
}

然后,在getOperationByParametersClass()方法中,您应该传递Parameters的实例(包括子类):

public <O extends Operation, P extends Parameters<O>> Class<O> 
             getOperationByParametersClass(P parametersInstance) {
    return parametersInstance.type;
}