Если у меня есть класс, как так:Начало напечатал возвращение метода с помощью Java Reflection
class Test {
Thing<String> getThing(String thing) {}
}
, как я могу определить, String.class с помощью отражения на примере теста? Путь, который я хочу принять, - это новый тест() -> get class -> find method -> get return type -> -> каким-то образом получить String.class, но я не нахожу, как выполняется последняя часть. То, что я до сих пор получает, Thing<java.lang.String>
, но не внутренний класс.
import org.reflections.ReflectionUtils;
Iterables.getOnlyElement(ReflectionUtils.getAllMethods((new Test()).getClass())).getGenericType();
тогда .getReturnType()
просто получает мне Thing.class
...
[Тип стирание] (https://docs.oracle.com/javase/tutorial/java/generics/erasure.html). –
ОК, им не видно, как это использовать – mathematician
Что делать, если это не общий тип, и он всегда является строкой – mathematician