有人可以在Java Collection Framework中解释签名
中<T>
的重要性
<T> T[] toArray(T array[]).
我知道<T>
代表通用。但基于一个例子的详细解释将是一个很大的帮助。
答案 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。