Предположим, у нас есть параметризованный класс
public class Example
Что можно подставлять в качестве значения параметра X при использовании этого класса в программе?
имя любого интерфейса (например, CharSequence)
символ "?" или более сложное выражение с ключевыми словами extends и
super
значение X можно не указывать, т.е. использовать класс Example как
обычный непараметризованный
имя любого класса (например, Object)
имя любого примитивного типа (например, int)
ссылку на метод (например, Object::toString)
имя любого перечисления (например, DayOfWeek)
значение примитивного типа (например, 42)
Объясните пожалуйста, почему не подходят ответы 1, 2, 3, 4 ?
Ответ
Аргументы типов в Java определены в спецификации в п.п. 4.5.1
В качестве аргумента по спецификации можно поставить ссылочный тип (ReferenceType в Java любой непримитивный тип) либо маску (WildCard, т.е. выражение ? extends/super T).
Вот пример допустимого использования Example
Example
Комментариев нет:
Отправить комментарий