Получение .class параметризованного типа? - PullRequest
0 голосов
/ 28 июня 2019

Если список и хотите получить класс этого, а не список, Я не могу сделать

List.class

Я не могу сделать

List<TennisBall>.class

Причина, по которой я хочу это сделать, заключается в том, что я использую аннотацию, за исключением класса, который генерирует документацию. Я могу выразить параметризованный класс.

Любые советы

Ответы [ 2 ]

1 голос
/ 28 июня 2019

Обобщения обеспечивают безопасность типов во время компиляции, но также были разработаны, чтобы избежать накладных расходов во время выполнения. Поэтому компилятор Java применяет «стирание типа» - это означает, что информация об универсальных элементах не записывается в файлы .class.

Я могу рекомендовать прочитать эту статью от Baeldung.

1 голос
/ 28 июня 2019

Помните, что дженерики - это 99% конструкция времени компиляции.Дженерики не создают новые классы / интерфейсы.И List (необработанный тип), и List<TennisBall> (параметризованный тип) представлены одним и тем же классом, которым является List.class.(И реализация класса разделяется аналогичным образом: LinkedList и LinkedList<TennisBall> оба реализованы одним и тем же классом.)

Вам нужно будет обратиться к документации аннотации, чтобы узнать, что делать с дженериками.с этим инструментом, когда то, что вы хотите документировать, включает параметр общего типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...