<t> T [] toArray(T array [])</t>

时间:2012-07-04 06:38:23

标签: java

有人可以在Java Collection Framework中解释签名

<T>的重要性
<T> T[] toArray(T array[]).

我知道<T>代表通用。但基于一个例子的详细解释将是一个很大的帮助。

2 个答案:

答案 0 :(得分:4)

此方法允许您创建所需类型的数组。默认的toArray()返回Object [],如果你有字符串列表并且你想要一个字符串[],这很麻烦。

例如:

List<String> list = new ArrayList<>();        
list.add("A");

String[] listToArray;
listToArray = list.toArray(); // This won't compile as to Array gives Object[]

listToArray = list.toArray(new String[list.size()]); // This works when I want String[]

答案 1 :(得分:2)

<T>是Java所说的方式&#34;在随后的方法声明中,T泛型参数而不是特定的名为T的类。

例如:

class T {
    public int x;
}

<T> T f(T x) { return x; }

T g(T x) { return new T(); }

方法f可以与任何类型的参数(例如String)一起使用,而g只能传递上面定义的类T的参数。也就是说,可以打电话

f("dog")

但不是g("dog"),因为字符串不是T。

Runnable example at ideone showing how f and g are used.