Java: Что - общедоступное статическое <T> нечто () {…}?

Насколько я знаю, не, вся поддержка поисковых роботов Позволяет тег. Одно возможное решение могло бы помещать все кроме домашней страницы в другую папку и запрещать ту папку.

5
задан quilby 7 July 2009 в 16:07
поделиться

3 ответа

Вы пропустили возврат введите, но кроме этого это общий метод. Как и в случае с универсальными типами, T заменяет любой ссылочный тип (в пределах, если они заданы).

Для методов общие параметры обычно выводятся компилятором. В определенных ситуациях вы можете захотеть указать общие аргументы самостоятельно, используя немного своеобразный синтаксис:

    List<String> strings = Collections.<String>emptyList();

В этом случае компилятор мог вывести тип, но не всегда очевидно, может ли компилятор или нет. Обратите внимание, что <> стоит после точки.

11
ответ дан 18 December 2019 в 14:49
поделиться

Контекст - это общий метод, а не класс. Переменная применяется только к вызову метода .. Класс Collections имеет их несколько; сам класс не является универсальным, но многие методы являются универсальными.

Компилятор решает, чему равен T - он равен тому, что заставляет типы работать. Иногда это проще, чем другие.

Например, метод static Set Collections.singleton (T o) тип, определенный в параметре:

Collections.singleton(String T)

вернет Задайте .

Иногда тип трудно определить. Например, иногда недостаточно информации для ввода Collection.emptyList () . В этом случае вы можете указать тип напрямую: Коллекция. emptyList () .

2
ответ дан 18 December 2019 в 14:49
поделиться

Это параметр формального типа, который будет заменен фактическим типом аргумент, используемый при создании объекта.

Например, вот определения List и Iterator в пакете java.util:

public interface List<E>{
  void add(E x);
  Iterator<E> iterator();
}

public interface Iterator<E>{
  E next();
  boolean hasNext();
}

Затем вы можете создать экземпляр List следующим образом:

List<String> ls = new ArrayList<String>()

Где вы можете представить, что List стоит для версии List, где E имеет были равномерно заменены строкой:

public interface StringList{
  void add(String x)
  Iterator<String> iterator();
}
0
ответ дан 18 December 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: