Страницы

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

понедельник, 24 февраля 2020 г.

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

#java


Предположим, у нас есть параметризованный класс

public class Example {
    ...
}


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


имя любого интерфейса (например, CharSequence)
символ "?" или более сложное выражение с ключевыми словами extends и
super
значение X можно не указывать, т.е. использовать класс Example как
обычный     непараметризованный
имя любого класса (например, Object)
имя любого примитивного типа (например, int)
ссылку на метод (например, Object::toString)
имя любого перечисления (например, DayOfWeek)
значение примитивного типа (например, 42)


Объясните пожалуйста, почему не подходят ответы 1, 2, 3, 4 ?
    


Ответы

Ответ 1



Аргументы типов в 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();

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

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