【问题标题】:How to find a class of type variable in Java? [duplicate]如何在Java中找到一个类型变量的类? [复制]
【发布时间】:2015-07-24 20:14:14
【问题描述】:

如何通过 Java 中的反射 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
}

【问题讨论】:

标签: java reflection


【解决方案1】:

您可以在Parameters 中引入一个成员,该成员将保存类型参数的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;
}

【讨论】:

  • 我同意这一点,只是传递Class 仍然是最可靠的解决方案。
猜你喜欢
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多