У меня есть проблема, чтобы решить :) Давайте предположим, что у меня есть такая структура:Java Reflection - граф объектов
Интерфейсы:
public interface RestServiceConverter<S, D> {
public D convert(S input);
}
public interface AdvancedRestServiceConverter<D, F, S> extends RestServiceConverter<S, D> {
}
Классы:
public class TestConverter extends SecondAbstractLevel<Integer> {
@Override
public ConvertedResult<String> convert(RawResult input) {
return null;
}
}
public abstract class AbstractTestConverter<S, D> extends SecondAbstractLevel {
}
public abstract class SecondAbstractLevel<T>
implements AdvancedRestServiceConverter<ConvertedResult<String>, Integer, RawResult> {
}
Вопрос: есть ли простой способ найти то, что типы параметров из RestServiceConverter (смотрите, что Params не Явные в этом интерфейсе, но в AdvancedRestServiceConverter в обратном порядке) начиная с TestConverter? Может быть, какая-то библиотека может помочь с этим. Я создаю некоторые функции в своем коде, где мне нужно проверить, является ли поле в каком-то классе тем же, что и второй параметр.
Пусть говорят мне нужен способ, как этот
findParameter(TestConverter.class, RestServiceConverter.class)
который возвращает массив со
[RawType, ConvertedResult<String>]
Спасибо за помощь.
Это звучит как замаскированный вариант http://stackoverflow.com/questions/3403909/get-generic-type-of-class-at-runtime (и все связанные с этим вопросы) – Marco13
Это не имеет никакого отношения к http://stackoverflow.com/questions/3403909/get- общий тип внеклассного-на-выполнения. Я спрашиваю об обтекании графика объектов и нет библиотеки, как получить тип параметра во время выполнения. – javovy
@javovy На самом деле, вы очень много спрашиваете об общей информации о запуске, и связанный поток имеет ответ. Но ... это довольно сложно справиться с этим самим. См. Мой ответ для более легкого решения. – kaqqao