参见英文答案 >
Get generic type of class at runtime 23个
>
How to get a class instance of generics type T 17个
如何通过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
}
最佳答案 您可以在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;
}