LIST больше не знает, каков его универсальный параметр во время выполнения. Другими словами, если я передаю 'x' методу, вы можете сказать, что это List (например, x.getClass()
даст вам что-то листовое, а x instanceof List
будет true
), но нет способ сказать, что это список животных. Там нет метода .getComponentType()
или любого другого.
Объекты в списке знают, что они животные, поэтому, как только вы получите один объект (что делает цикл for, который вы написали в своем коде), вы можете спросить объект, что это такое.
Представьте, что в этом списке нет ничего, например. Нет способа сказать. Также учтите следующее:
List<Number> numbers = new ArrayList<Number>();
List<Integer> integers = new ArrayList<Integer>();
numbers.add(Integer.valueOf(1));
integers.add(Integer.valueOf(1));
Отсюда вы можете запросить первый элемент в любом списке, и он будет иметь тип java.lang.Integer
. Но нет никакого способа узнать, что список numbers
был определен, чтобы принимать любое число (целое число является подтипом числа), а integers
было определено, чтобы принимать только целые числа.
Эти @version
тег должен быть текущей версией выпуска или рассматриваемого файла. %I%
, %G%
синтаксис является макросами, которые программное обеспечение управления исходным кодом заменило бы текущей версией файла и даты, когда файл проверяется.
Эти @since
тег должен использоваться для определения, какая версия Вы добавили метод, класс, и т.д. Это - Ваша подсказка другим разработчикам, что они должны только ожидать метод, когда они будут работать против конкретной версии пакета. Я рассмотрел бы эти uber-важные части документации, если Вы поставляете свой код как библиотека, предназначенная, чтобы кто-то еще использовал.
Я не вижу, как они являются взаимоисключающими. Каждый используется для определения версии, и другой используется для описания с тех пор, когда метод там. Например:
/**
* Does Whatever
* @version 1.2.3
* @since 1.2.0
*
*/
public void myMethod() {
// .......
}
Относительно символов Вы упомянули, они кажутся собственными, и в любом случае у меня нет подсказки, что они имеют в виду.