Отражение Java в любом случае для сравнения Class <?> Или Type с Class <T> - PullRequest
1 голос
/ 26 мая 2011

Простите, что задал такой вопрос, но я занимался C # в течение последних нескольких лет до самого недавнего времени, поэтому я немного увлечен дженериками стирания типов в Java по сравнению с интуитивной версией дженериков в C #.1002 * У меня есть такая ситуация:

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?
    }
  }
}

Так как параметрClass имеет тип Class, то это неизвестный тип класса, поэтому его нельзя определить во время выполнения?Существует ли способ выполнить это сравнение?Опять же, я извиняюсь, что не использовал дженерики Java годами, я читал об этом и все еще в замешательстве.

1 Ответ

1 голос
/ 26 мая 2011

Попробуйте использовать method.getGenericParameterTypes() вместо неуниверсального getParameterTypes()

...