private static <T>T cloneX (T x) - Что означает <T>здесь? - PullRequest
2 голосов
/ 12 апреля 2010

В вышеприведенном объявлении, что такое <T> для?

Хотелось бы узнать разницу между <T> и его отсутствием? Как это влияет на код?

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010

<T> здесь указывает тип, подразумеваемый из аргументов. Итак:

public static <T> List<T> createList(T... args) {
  List<T> ret = new ArrayList<T>(Arrays.asList(args));
}

можно использовать:

List<String> list = createList("one", "two", "three");

или

List<Integer> list2 = createList(1, 2, 3);
1 голос
/ 12 апреля 2010

это просто означает, что вы получите тот же класс из того метода, который вы вставляете, чтобы сохранить его как Object, и вам придется постоянно приводить.

0 голосов
/ 12 апреля 2010

Это общий параметр. Если пишешь то

string s = ...;
clone(s); // will be expanded to string clone(string x)
0 голосов
/ 12 апреля 2010

<T> - это тип параметра, который вы передаете этому универсальному методу.

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