VIB*_*azo 8 java generics syntax libgdx
查看libgdx上Array类的方法.我找到了这个方法:
public void addAll (T... array) {
addAll(array, 0, array.length);
}
Run Code Online (Sandbox Code Playgroud)
我之前从未见过"T ...",事实证明,在谷歌或Stack Overflow上搜索"T ..."非常困难.我想我理解泛型,但"......"对我来说是新的.
那是什么意思?因此,例如,如果T是String,那么我将如何使用此方法?我为什么要用它?那怎么会与使用"T []"不同呢?
Jon*_*eet 24
这T...
只是一个varargs参数,其中元素类型恰好是T
类的泛型类型参数.
关键是你可以像这样调用方法(假设array
是一个Array<String>
):
array.addAll("x", "y", "z");
Run Code Online (Sandbox Code Playgroud)
这相当于
array.addAll(new String[] { "x", "y", "z" });
Run Code Online (Sandbox Code Playgroud)
这也可以在没有泛型的情况下使用.例如:
public static int sum(int... elements) {
int total = 0;
for (int element : elements) {
total += element;
}
return total;
}
Run Code Online (Sandbox Code Playgroud)
Varargs参数在Java 5中引入.
归档时间: |
|
查看次数: |
456 次 |
最近记录: |