Страницы

Поиск по вопросам

понедельник, 29 апреля 2019 г.

Что можно подставлять в качестве значения параметра X при использовании этого класса в программе?

Предположим, у нас есть параметризованный класс
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 a = new Example(); Example b = new Example(); Example c = new Example(); Example d = new Example(); Example e = new Example();

Комментариев нет:

Отправить комментарий