`
焱下川
  • 浏览: 22214 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

List<? extends Number> list和List<Number>的区别

    博客分类:
  • Java
阅读更多

If wanting a List that can store objects of all subclasses of Number, you can just use List<Number>.

That is not the same as List<? extends Number>, which is a List whose members can only be a specific subclass of Number.

(When I say "subclass of Number", I include Number itself ... obviously?)

 

 

 

 

http://www.coderanch.com/t/383399/Java-General/java/use-add-method-List-extends

 

分享到:
评论

相关推荐

    Java中List<? extends T>与List<? super T>的区别(值得珍藏)

    extends T&gt;和List&lt;? super T&gt;是泛型的不同使用形式,它们在类型约束和操作上有所不同。 1. List&lt;? extends T&gt; - `? extends T` 是类型上界的表示,意味着列表中的元素可以是T类型或者是T的任何子类型。这种类型的...

    泛型中extends和super的区别Java系列2021.pdf

    extends Number&gt; foo3表示foo3可以是List&lt;Number&gt;、List&lt;Integer&gt;、List&lt;Double&gt;等类型的列表。这种声明意味着foo3可以包含Number类型或其子类的元素。 super关键字 在泛型中,super关键字用于限制类型参数的下界...

    Java泛型中? super T和? extends T的区别

    extends T&gt;表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。  extends  List&lt;? extends Number&gt; foo3的通配符声明,意味着以下的赋值是合法的:  // Number "extends" Number (in...

    实例189 - 使用通配符增强泛型

    extends Number&gt; list = new ArrayList&lt;Integer&gt;();` 这样的代码表明list可以包含Number或其子类的对象,允许读取但不允许添加非Number对象。 3. **下界通配符**:? super T,这里的T是一个具体的类型或者其子类型...

    使用通配符简化泛型使用1

    extends Number&gt;`和`&lt;? extends CharSequence&gt;`,但当需要将这些类型参数传入另一个方法时,可能会遇到捕获转换的问题。捕获通配符允许将这些类型的参数转换为更具体的类型,以便在方法内部使用。 7. 类型安全...

    Java 泛型通配符的一个实例

    * 一个参数通配符的实例 * 说明:对一个包含了数值元素的集合进行汇总运算。在这种情况下,用户并不... extends Number&gt; values) * 方法声明了一个参数变量values是List类型,该集合中的元素必须是Number的子类对象

    关于java基础的泛型的练习

    - 泛型类的实例化必须提供实际类型参数,如`MyList&lt;String&gt; list = new MyList&lt;&gt;();` - 对于无参构造的泛型类,可以使用匿名内部类的方式省略尖括号,如`new MyList&lt;String&gt;() {}`。 9. 泛型和静态方法: - 泛型...

    JDK5,JDK8新特性.ppt .ppt

    extends Number&gt;` 能接收 `List&lt;Integer&gt;`,因为 Integer 是 Number 的子类。 - **使用通配符**:通配符可以用于方法参数,如 `void addToList(List&lt;? extends Number&gt; numbers)`,这允许传入任何 Number 的子类的...

    java+泛型.pdf

    List&lt;Integer&gt; myIntList = new LinkedList&lt;&gt;(); myIntList.add(new Integer(0)); Integer x = myIntList.iterator().next(); ``` 在泛型版本中,类型转换是不必要的,编译器会自动检查类型一致性,避免了运行时可能...

    Java泛型总结(2)进阶篇

    extends Number&gt;` 可以赋值给 `List&lt;? super Integer&gt;`,因为Integer是Number的子类。 9. 类型推断 自Java 7起,编译器支持类型推断,允许在某些情况下省略类型参数。例如,当我们调用泛型方法时,编译器可以通过...

    泛型&通配符常见面试题总结

    extends Number&gt; numList = new ArrayList&lt;Integer&gt;(); numList.add(5); // 错误 Number n = numList.get(0); // 正确 ``` 4. 编写一个方法,接受两个列表,返回它们的交集,但不能修改输入列表。如何使用泛型...

    Java泛型_Java中的泛型结构_

    - 实例化:`MyClass&lt;String&gt; myObj = new MyClass&lt;&gt;();` - 类型擦除:Java编译器会进行类型擦除,将泛型类的实例转换为无参数类型,但会在编译时进行类型检查。 3. 泛型接口: - 定义与实例化与泛型类类似,例如...

    浅析Java泛型的使用.pdf

    例如,List&lt;Integer&gt;和List&lt;Number&gt;在运行时实际上是相同的类,都变成了List。类型擦除使得泛型在运行时无法直接检测,但编译时的类型检查仍然确保了安全性。 为了应对类型擦除带来的限制,Java引入了通配符。...

    day05-集合.pdf

    - 示例:`Generic&lt;String&gt; g1 = new Generic&lt;&gt;();` #### 1.3 泛型方法 - **定义格式**:`修饰符 &lt;类型&gt; 返回值类型 方法名(类型 参数名) {}` - 示例:`public class Generic { public &lt;T&gt; void show(T t) { ...

    05-java泛型的使用.doc

    extends Number&gt; src, List&lt;? super Integer&gt; dest)`允许从任何Number子类列表复制到能容纳Integer及其超类的列表。 - **边界**:通配符可以带有边界,限制可以接受的类型范围。例如,`List&lt;? extends Number&gt;`...

    java泛型的内部原理及更深应用

    例如,使用`&lt;&gt;`钻石操作符,如`List&lt;String&gt; list = new ArrayList&lt;&gt;();`,编译器会自动推断出列表的类型。 7. **泛型方法**:除了泛型类,我们还可以定义泛型方法,方法的返回类型和参数列表可以包含类型参数。这...

    java 泛型

    例如,`List&lt;String&gt; list = new ArrayList&lt;&gt;();`编译器可以自动推断出`&lt;String&gt;`。 8. **限界通配符多态**:在某些情况下,我们可以利用限界通配符实现多态。例如,`public void processNumbers(List&lt;? extends ...

    实例讲解Java泛型编程的快速入门

    extends Number&gt; list)`接受`List&lt;Integer&gt;`或`List&lt;Double&gt;`等。 - 下界通配符:Java不支持下界通配符,但可以通过`List&lt;? super T&gt;`实现类似效果,允许传入`T`或其父类的列表。 3. **泛型与数据类型转换** - ...

Global site tag (gtag.js) - Google Analytics