public class Generic {
public static void main(String[] args) {
List<Person> persons = new ArrayList<Person>();
// 1 泛型类型的方法可操作其定义的类型的对象或子对象
persons.add(new Person());
persons.add(new Man());
// 2 G<Man>并不是G<Person>的子类型
// List<Person> persons = new ArrayList<Man>(); X
// 3 通配符?代表未知类型
List<?> list = new ArrayList<Person>();
// 3.1 <?> != <Object>
// List<Object> objs = new ArrayList<Person>(); X
// 3.2 List<?>无法调用add方法添加对象,除了添加null,null是所有类型的子类型
// list.add(new Person()); X
list.add(null);
// 4 有界通配符
List<? extends Person> men = new ArrayList<Man>();
// 4.1 仍然无法使用add方法,除了null
// men.add(new Person()); X
// men.add(new Man()); X
men.add(null);
List<? super Man> men1 = new ArrayList<Person>();
List<? super Man> men2 = new ArrayList<Man>();
men1.add(new Man());
men1.add(new Man());
// men1.add(new Person()); X
men2.add(new Man());
}
}
class Person {
}
class Man extends Person {
}
分享到:
相关推荐
在本资料包“Java第八章参考资料”中,我们聚焦于Java编程语言的深入学习,特别是第八章的内容。尽管描述提到的是“accc7.0第一章到第七章部分代码”,但我们的重点将放在Java语言的核心概念以及如何在实际项目中...
在这个“Java转换为C#大型试验”中,我们主要关注以下几个关键知识点: 1. **语言语法差异**:Java和C#都是面向对象的语言,但它们在语法上存在显著区别。例如,C#支持属性(Properties),而Java使用getter和...
**Java试验项目** Java试验项目通常是为了学习和实践Java编程语言而设计的,它涵盖了从基础语法到高级特性的各种应用场景。在这个项目中,你将有机会深入理解Java的核心概念,并通过实际操作提升编程技巧。 **Java...
《Java程序设计试验指导》是一本旨在帮助学习者深入理解并实践Java编程的教材,源自清华大学出版社。本书的源码提供了17个章节的实验内容,涵盖了Java编程的基础到进阶知识,是学习和掌握Java编程语言的重要资源。在...
10. **集合高级特性和泛型**:学习Set、Queue、Deque等集合接口,以及泛型的使用,提升代码的类型安全性和可读性。 11. **枚举和注解**:理解枚举类型的应用,以及注解(Annotation)在元数据和代码自动生成中的...
在本Java高级开发的课后实验报告中,我们将深入探讨Java编程语言的高级特性与实践应用,旨在提升开发者对Java的全面理解与熟练运用。Java作为一种广泛应用的编程语言,其强大的功能和跨平台特性使其在软件开发领域...
这些高级特性包括异常处理、泛型、集合框架、输入输出(I/O)流以及并发编程等。异常处理是Java中处理程序运行时错误的重要机制,书中详细解释了如何使用异常来构建健壮的应用程序。集合框架则为Java程序员提供了...
Java 2 核心技术是 Java 编程领域的一本经典教材,分为卷一和卷二,涵盖了 Java 开发的基础...在"corejava8"这个压缩包中,你将找到这些示例代码,便于在自己的环境中进行试验和调试,从而加深对所学知识的理解和应用。
记得理论结合实践,不断试验和调试代码,是成为一名优秀Java程序员的关键步骤。在学习过程中,遇到问题不要害怕,查阅文档、参考书籍或者在线求助都是很好的解决方式。祝你在Java学习之旅中取得丰硕的成果!
Java沙箱,正如标题“java-sandbox”所示,是一个安全的环境,用于实验和测试Core Java的相关特性。在计算机安全领域,沙箱是一种技术,它允许程序运行在受限制的环境中,防止它们对系统造成潜在的危害。对于Java,...
另外,`java.util`包下新增了`OptionalDouble`, `OptionalInt`和`OptionalLong`,作为`Optional`的泛型版本,用于处理基本类型的包装类,减少了空指针异常的风险。 JDK 9还对`Stream` API进行了增强,添加了`...
这个项目的核心是提供一个环境,让学习者和专业人士可以试验、练习和掌握Java语言的各种特性。让我们深入探讨一下这个项目可能涵盖的知识点。 1. **Java基础**: 作为Java游乐场,它会涵盖Java语言的基础概念,包括...
在 LabVIEW 中,泛型编程尚未完全实现,这意味着用户无法像在 C++ 或 Java 中那样编写数据类型无关的算法。然而,"LabVIEW Generic Container Map" 项目尝试引入这一特性,提供一个可以处理多种数据类型的容器。通过...
8. **泛型**:Java泛型允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。 9. **设计模式**:可能包含一些常见的设计模式实现,如单例模式、工厂模式、观察者模式等,这些都是...
在这个名为"Java8Trial"的项目中,我们可以看到开发者正在试验和学习这些特性,并可能将其应用于解决LeetCode等算法问题。 1. **函数式编程**: Java8引入了Lambda表达式,这是对函数式编程风格的重大支持。Lambda...
5. **泛型和参数化类型**:由于Java泛型的类型擦除,ProGuard可能无法正确处理这些类型。在混淆规则中添加针对泛型类和方法的保留规则,以避免混淆。 6. **保留枚举常量**:枚举类型的常量如果不特别指定,可能会被...
此外,还可能包含对集合框架高级特性的探讨,比如迭代器(Iterator)的使用,泛型(Generics)的应用,以及集合的遍历和搜索算法。还有可能涉及线程安全的集合,如CopyOnWriteArrayList和ConcurrentHashMap,以及...