1

有人可以在 Java Collection Framework 中解释<T>签名的重要性吗

<T> T[] toArray(T array[]).

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

4

2 回答 2

4

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

例如:

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[]
于 2012-07-04T06:58:35.043 回答
2

<T>就是 Java 所说的“在随后的方法声明中,T是一个泛型参数,而不是一个具有 name 的特定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。

ideone 上的可运​​行示例,展示了如何使用 f 和 g。

于 2012-07-04T07:05:04.690 回答