
该行通过使用泛型类型参数调用静态方法来创建一个空字符串列表。
在
Collections类内部,有一个静态方法
emptyList声明为:
public static final <T> List<T> emptyList() { return (List<T>) EMPTY_LIST;}这具有通用类型参数
T。我们使用以下方法调用此方法:
List<String> list = Collections.emptyList();
并被
T推断为是
String由于的类型
list。
我们也可以
T在调用时将其放在尖括号中来指定其类型
emptyList。如果我们想要比推断的类型更具体的类型,则可能需要这样做:
List<? extends Object> list = Collections.<String>emptyList();
emptyList<String>()是不正确的,因为该放置仅在创建泛型类的实例而不是调用方法时才有效。当使用
new两个可能的类型参数时,类名之前的仅用于构造函数,而类名之后的则用于整个实例,因此对于类:
class MyClass<A> { public <B> MyClass(A a, B b) { System.out.println(a + ", " + b); }}我们可以调用它的构造,其中
A是
String和
B是
Integer这样的:
MyClass<String> a = new <Integer>MyClass<String>("a", 3);或使用类型推断:
MyClass<String> a = new MyClass<>("a", 3);也可以看看:
- 通用方法
- 类型推断
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)