`
mengyang
  • 浏览: 266143 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Java泛型试验

阅读更多
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第八章参考资料”中,我们聚焦于Java编程语言的深入学习,特别是第八章的内容。尽管描述提到的是“accc7.0第一章到第七章部分代码”,但我们的重点将放在Java语言的核心概念以及如何在实际项目中...

    java转换为C# 大型试验

    在这个“Java转换为C#大型试验”中,我们主要关注以下几个关键知识点: 1. **语言语法差异**:Java和C#都是面向对象的语言,但它们在语法上存在显著区别。例如,C#支持属性(Properties),而Java使用getter和...

    Java试验项目

    **Java试验项目** Java试验项目通常是为了学习和实践Java编程语言而设计的,它涵盖了从基础语法到高级特性的各种应用场景。在这个项目中,你将有机会深入理解Java的核心概念,并通过实际操作提升编程技巧。 **Java...

    《Java程序设计试验指导》源码

    《Java程序设计试验指导》是一本旨在帮助学习者深入理解并实践Java编程的教材,源自清华大学出版社。本书的源码提供了17个章节的实验内容,涵盖了Java编程的基础到进阶知识,是学习和掌握Java编程语言的重要资源。在...

    云大java实验,试验1-12,

    10. **集合高级特性和泛型**:学习Set、Queue、Deque等集合接口,以及泛型的使用,提升代码的类型安全性和可读性。 11. **枚举和注解**:理解枚举类型的应用,以及注解(Annotation)在元数据和代码自动生成中的...

    java 高级开发的课后实验报告

    在本Java高级开发的课后实验报告中,我们将深入探讨Java编程语言的高级特性与实践应用,旨在提升开发者对Java的全面理解与熟练运用。Java作为一种广泛应用的编程语言,其强大的功能和跨平台特性使其在软件开发领域...

    Thingking In Java 第四版 英文版

    这些高级特性包括异常处理、泛型、集合框架、输入输出(I/O)流以及并发编程等。异常处理是Java中处理程序运行时错误的重要机制,书中详细解释了如何使用异常来构建健壮的应用程序。集合框架则为Java程序员提供了...

    java2核心技术卷一卷二源代码

    Java 2 核心技术是 Java 编程领域的一本经典教材,分为卷一和卷二,涵盖了 Java 开发的基础...在"corejava8"这个压缩包中,你将找到这些示例代码,便于在自己的环境中进行试验和调试,从而加深对所学知识的理解和应用。

    java学习代码

    记得理论结合实践,不断试验和调试代码,是成为一名优秀Java程序员的关键步骤。在学习过程中,遇到问题不要害怕,查阅文档、参考书籍或者在线求助都是很好的解决方式。祝你在Java学习之旅中取得丰硕的成果!

    java-sandbox:这是一个Java沙箱,主要用于试验与CoreJava相关的构造

    Java沙箱,正如标题“java-sandbox”所示,是一个安全的环境,用于实验和测试Core Java的相关特性。在计算机安全领域,沙箱是一种技术,它允许程序运行在受限制的环境中,防止它们对系统造成潜在的危害。对于Java,...

    jdk9 api 中文版ch

    另外,`java.util`包下新增了`OptionalDouble`, `OptionalInt`和`OptionalLong`,作为`Optional`的泛型版本,用于处理基本类型的包装类,减少了空指针异常的风险。 JDK 9还对`Stream` API进行了增强,添加了`...

    java-playground:Java游乐场

    这个项目的核心是提供一个环境,让学习者和专业人士可以试验、练习和掌握Java语言的各种特性。让我们深入探讨一下这个项目可能涵盖的知识点。 1. **Java基础**: 作为Java游乐场,它会涵盖Java语言的基础概念,包括...

    16.LabVIEW 中的泛型容器.doc-综合文档

    在 LabVIEW 中,泛型编程尚未完全实现,这意味着用户无法像在 C++ 或 Java 中那样编写数据类型无关的算法。然而,"LabVIEW Generic Container Map" 项目尝试引入这一特性,提供一个可以处理多种数据类型的容器。通过...

    java-playground

    8. **泛型**:Java泛型允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。 9. **设计模式**:可能包含一些常见的设计模式实现,如单例模式、工厂模式、观察者模式等,这些都是...

    Java8Trial:测试java8新特性

    在这个名为"Java8Trial"的项目中,我们可以看到开发者正在试验和学习这些特性,并可能将其应用于解决LeetCode等算法问题。 1. **函数式编程**: Java8引入了Lambda表达式,这是对函数式编程风格的重大支持。Lambda...

    android 混淆出错 Can't process class 解决办法

    5. **泛型和参数化类型**:由于Java泛型的类型擦除,ProGuard可能无法正确处理这些类型。在混淆规则中添加针对泛型类和方法的保留规则,以避免混淆。 6. **保留枚举常量**:枚举类型的常量如果不特别指定,可能会被...

    collectionJava源码-JavaCodes:初学者级别的Java源代码集合

    此外,还可能包含对集合框架高级特性的探讨,比如迭代器(Iterator)的使用,泛型(Generics)的应用,以及集合的遍历和搜索算法。还有可能涉及线程安全的集合,如CopyOnWriteArrayList和ConcurrentHashMap,以及...

Global site tag (gtag.js) - Google Analytics