Подтвердить что ты не робот

Java-синтаксис для явного указания общих аргументов в вызовах метода

Каков синтаксис для явного указания параметров типа для общего метода Java?

4b9b3361

Ответ 1

И это не синтаксис

<ArgType>genericMethod()

Кажется, что аргументы типа должны поступать после точки, как в

SomeClass.<ArgType>genericMethod()
this.<ArgType>genericMethod()
p.<ArgType>genericMethod()
super.<ArgType>genericMethod()
SomeClass.super.<ArgType>genericMethod()
SomeClass.this.<ArgType>genericMethod()

Ответ 2

В соответствии с спецификацией Java, которая будет, например:

Collections.<String>unmodifiableSet()

(Извините за то, что я задал вопрос и ответил на свой вопрос - я просто смотрел это в третий раз.: -)

Ответ 3

Хорошим примером из java.util.Collection указания общего метода, который определяет его собственный общий тип, является Collection.toArray, где выглядит подпись метода как:

<T> T[] toArray(T[] a);

Это объявляет общий тип T, который определяется при вызове метода параметром T[] a и возвращает массив T. Таким образом, один и тот же экземпляр может вызвать метод toArray в общем виде:

Collection<Integer> collection = new ArrayList<Integer>();
collection.add(1);
collection.add(2);

// Call generic method returning Integer[]
Integer[] ints = collection.toArray(new Integer[]{});

// Call generic method again, this time returning an Number[] (Integer extends Number)
Number[] nums = collection.toArray(new Number[]{});

Также см. java учебник по параметрам типового типа.