无论如何,Java反射比较Class <! - ? - >或Type to Class <t>?</t>

时间:2011-05-26 12:31:19

标签: java reflection type-erasure

请原谅我提出这样一个问题,但是在过去的几年里我一直在做C#直到最近,所以我对Java中的类型擦除泛型相比,与C#中的泛型的直观版本相比有点生疏。

我有这样的情况:

public void doSomething(Class<T> classType) {
  for (Method method : classType.getMethods()) {
    for (Class<?> parameterClass : method.getParameterTypes()) {
      // How do I compare parameterClass to classType or to String.class?
    }
  }
}

由于parameterClass是Class类型,那么它是一个未知的类类型,因此无法在运行时确定?他们是否有办法进行这种比较?我再次说,我多年来没有使用过Java泛型,而且我一直在阅读它并且仍然感到困惑。

1 个答案:

答案 0 :(得分:1)

尝试使用method.getGenericParameterTypes()代替非通用getParameterTypes()