相关疑难解决方法(0)

为什么和多态泛型类型

什么时候应该使用像这样的通用多态类型,它的含义是什么?

 1. List<? super Dog> list = new ArrayList<Animal>();
 2. List<? extends Animal> list = new ArrayList<Dog>();
 3. List<?> list = new ArrayList<Dog>();
Run Code Online (Sandbox Code Playgroud)

有人会用这样的东西

List<? super Dog> list = new ArrayList<Dog>();
List<? extends Animal> list = new ArrayList<Animal>();
Run Code Online (Sandbox Code Playgroud)

注意:我理解人们何时使用List<? super Dog>List<? extends Animal>在方法定义中.但我不明白的是多态泛型类型对象创建.

java generics

6
推荐指数
1
解决办法
3156
查看次数

通过使用泛型'extends'添加字符串会导致编译器错误

代码如下:

List<? extends String> genericNames = new ArrayList<String>();
genericNames.add("John");
Run Code Online (Sandbox Code Playgroud)

给编译器错误:

此行中的多个标记 - 类型List中的方法add(capture#1-of?extends String)不适用于参数(String) - 类型List中的方法add(capture#1-of?)不是适用于参数(String)

导致此错误的原因是什么?我是否应该无法添加字符串或其子类型,因为我在类型参数中扩展String?

java

0
推荐指数
1
解决办法
2173
查看次数

标签 统计

java ×2

generics ×1