具有以下继承关系的三个类
Manager继承自Person,CTO继承自Manager
private void doSome1(){ Box<CTO> ctoBox = new Box<CTO>(); Box<? extends Person> personBox = ctoBox; //通过personBox引用对象,不能改变对象本身,因为你不知道泛型的具体类型 //比如本例,真实类型是CTO,但是如果你改变成了Person,其它引用这个对象的地方(ctoBox)就会有问题 //因为其它地方一直以为真是类型是CTO,但是其实是Person,CTO是Person的字类,比Person拥有更多的信息 personBox.setData(new Person()); } private void doSome2(){ Box<Manager> managerBox = new Box<Manager>(); Box<? super CTO> ctoBox = managerBox; //下面的代码只有第一行可以编译通过,通过ctoBox引用对象,当需要改变自身时,只能设置CTO对象 //因为只能确认所引用的对象是CTO的父类,具体哪个类型并不知道,CTO是最底层的类所以具有最全的信息 //比如本例,真实的类型是Manager,如果能成功设置成Person,其他应用到的地方就有问题,因为Manager是Person的子类 //比person拥有更多的信息 ctoBox.setData(new CTO()); ctoBox.setData(new Manager()); ctoBox.setData(new Person()); ctoBox.setData(new Object()); }
相关推荐
4. 泛型方法:使用类型形参定义的方法,例如 `public static void test(List<T> c)`。 泛型的使用: 1. 定义泛型类:`public class Applet<T>{public T info; ...}` 2. 使用泛型类:`Applet<String> applet = new ...
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
参数化类型是指在使用泛型类时指定了具体的类型。例如,`List<String>` 是一个参数化类型,`List` 是泛型类,`String` 是具体的类型。 4. 原始类型 原始类型是指参数化类型的泛型类的 Class。例如,`List` 的原始...
定义LinkedList类型数据域(采用组合实现以便简化开发)。 构造方法:创建一个空栈 入栈的push方法:添加一个新的元素到栈顶 出栈的pop方法:返回栈顶元素 判断是否空的empty()方法:如果栈为空,则返回true ...
类型通配符:展示如何使用类型通配符来增加灵活性,以及如何进行类型边界约束。 泛型接口:演示如何定义和实现泛型接口,并通过示例代码展示泛型接口的应用。 希望这个代码资源能够帮助你更好地理解和应用Java中的...
* 一个参数通配符的实例 * 说明:对一个包含了数值元素的集合进行汇总运算。在这种情况下,用户并不关心 * 集合中的每一个对象是什么类型,只要它是数值型即可,而且,用户也希望集合中可以 * 存放不同类型的数值...
通配符基本介绍泛型是一种表示类或方法行为对于未知类型的类型约束的方法,比如 “不管这个方法的参数 x 和 y 是哪种类型,它们必须是相同的类型”,“必须为这些方
泛型&通配符常见面试题总结
本资源为 Java 1.5 泛型指南中文版的详细笔记,涵盖了泛型的基础知识、泛型类、泛型方法、通配符、擦除和翻译、类型安全、类型参数、实际类型参数、擦除、翻译、转型和 instanceof、数组、Class Literals as Run-...
通过7个实例详细介绍泛型的使用,包括普通泛型、通配符、泛型方法、泛型接口、受限泛型、泛型的转型、泛型数组。相信看完这几个泛型的例子就会使用泛型了。注意,这里并不介绍泛型的具体语法,只介绍泛型的使用。
在 IntelliJ IDEA 中,可以使用通配符类型来编写更加灵活和泛型的代码。 例如,在上面的代码中,我们定义了一个 `wildcardtest` 类,其中包含三个方法: * `Shape(ArrayList<?> c)`:使用通配符类型 `?` 来表示...
掌握泛型类,能够独立定义和使用泛型类 掌握泛型接口,能够独立定义和使用泛型接口 掌握泛型方法,能够独立定义并使用泛型方法 掌握类型通配符,能够正确定义类型通配符的上限和下限 通过之前的学习,读者可以了解到...
泛型的继承和通配符
主要介绍了Java中泛型通配符的使用方法,结合实例形式分析了java中泛型通配符的功能、语法及在泛型类创建泛型对象中的使用方法,需要的朋友可以参考下
通配符:可以使用通配符来限制类型参数的范围。例如,List表示一个可能是Number或其子类类型的列表。 类型推断:在Java 7及以上版本中,可以使用varargs和钻石操作符来推断类型参数。例如,List[] lists = Arrays....
允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种...
下面小编就为大家带来一篇详谈Java泛型中T和问号(通配符)的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
通过使用泛型类、泛型方法以及通配符,我们可以处理多种数据类型而无需重复编写代码,并且在编译时进行类型检查,避免了运行时的类型错误。 在本文中,我们简要介绍了Java泛型的概念,并通过实例和代码详细解释了...
java基础-泛型通配符
下面小编就为大家带来一篇Java泛型类型通配符和C#对比分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧