有人可以在 Java Collection Framework 中解释<T>
签名的重要性吗
<T> T[] toArray(T array[]).
我知道这<T>
代表通用。但是基于示例的详细解释将有很大帮助。
有人可以在 Java Collection Framework 中解释<T>
签名的重要性吗
<T> T[] toArray(T array[]).
我知道这<T>
代表通用。但是基于示例的详细解释将有很大帮助。
此方法允许您创建所需类型的数组。默认的 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[]
这<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。