`

Java 泛型举例

    博客分类:
  • Java
阅读更多
Java 5 之后引入泛型(Genetics)。

使用泛型的入门例子:
package generics;

import java.util.*;

public class Eg01 {
	public static void main(String[] args){
		List<Integer> myIntList = new LinkedList<Integer>(); 
		myIntList.add(new Integer(0));
		Integer x = myIntList.iterator().next(); // 3
		System.out.println(x);
	}

}


解释:因为使用泛型语法,// 3  处不必进行Integer类型强制转换。

泛型的简单定义:
package generics.define;

public interface List<E> {
	void add(E x);
	Iterator<E> iterator();
}
interface Iterator<E> {
	E next();
	boolean hasNext();
}



有边界的通配符:
package generics.boundedwildcards;
import java.util.*;

public class Census{
	public static void addRegistry(Map<String, ? extends Person> registry){
	}
	public static void main(String[] args){
		Map<String, Driver> allDrivers = new HashMap<String, Driver>();
		Census.addRegistry(allDrivers);
	}
}

class Driver extends Person{
	
}

class Person{
	
}

===========================================================
package generics.boundedwildcards;

public abstract class Shape{
	public abstract void draw(Canvas c);
	
}




package generics.boundedwildcards;

public class Circle extends Shape{
	private int x, y, radius;
	public void draw(Canvas c){
		
	}
}

package generics.boundedwildcards;

public class Rectangle extends Shape{
	private int x, y, width, height;
	public void draw(Canvas c){
		
	}
}

package generics.boundedwildcards;

import java.util.List;

public class Canvas {
	public void draw(Shape s){
		s.draw(this);
	}
	//public void drawAll(List<Shape> shapes){
	public void drawAll(List<? extends Shape> shapes){
		for(Shape s : shapes){
			s.draw(this);
		}
		
	}
}


分享到:
评论

相关推荐

    java泛型例子

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入,极大地增强了类型安全性和代码可读性。泛型允许我们在编写代码时指定容器(如集合)可以存储的数据类型,从而在编译阶段就能捕获类型...

    java泛型简单明了.md

    对泛型的简单举例,通过例子了解泛型这个知识点

    枚举和泛型的应用举例

    枚举(Enum)和泛型(Generic)是Java编程语言中的两种强大特性,它们极大地提升了代码的可读性、安全性和复用性。本篇文章将深入探讨这两种概念及其在实际应用中的示例。 首先,我们来看枚举。枚举是一种预定义的...

    java集合和泛型

    所谓泛型,就是参数化类型。集合框架就是一个用来表示和操作集合统一的架构,包含了集合的接口与实现类。本文件通过举例来讲解泛型和集合的基础操作。

    java泛形<>

    java泛型的讲解和举例 |int|String&gt;

    java入门资料(String,接口和抽象类,泛型,io流,反射,多线程)

    Java 开发场景举例 Java 可以应用于多种开发场景,例如: * SSM 框架开发 * Android 核心代码开发 * 大数据 Hadoop 开发 Java 的应用领域 Java 广泛应用于多种领域,例如: * 企业软件开发 * 移动设备开发 * ...

    尚硅谷-实验1:集合中使用泛型.pdf

    ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千斤 2.课程内容推陈出新: ·基于JDK 11,将Java8、Java9、Java10、Java11新特性一网打尽 ·课程中,Eclipse...

    尚硅谷-实验2:自定义泛型类的使用.pdf

    ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千斤 2.课程内容推陈出新: ·基于JDK 11,将Java8、Java9、Java10、Java11新特性一网打尽 ·课程中,Eclipse...

    JAVA c++比较 对比讲解二者不同 代码举例(英文版)

    ### C++与JAVA语言对比分析 #### 一、引言 C++与JAVA作为两种流行的编程语言,在软件开发领域有着广泛的应用。虽然JAVA的设计者熟悉C++并借鉴了其语法结构,但两者之间存在诸多差异。本文将详细介绍C++与JAVA在多...

    Java语言程序设计(完整版)第六版 教程示例源码

    11. **泛型与枚举**:泛型提供类型安全,枚举则是定义固定数量的常量。示例源码将展示如何有效利用它们。 12. **Lambda表达式与函数式编程**:Java 8引入了lambda表达式,使得函数式编程风格成为可能。示例将展示...

    第8章 集合类与泛型程序设计

    Java中的集合类与泛型程序设计是Java开发中不可或缺的一部分,它们为开发者提供了处理和组织对象的高效工具。本章主要介绍了以下几个核心概念: 8.1 集合类结构: Java集合框架由两个主要的接口树组成。第一个树以...

    朱福喜java入门精品课件【带代码】

    本ppt适合初学java者使用,附带清晰完整的举例及练习代码,易于读者掌握,使用朱福喜的java教材使用该ppt效果最佳,本ppt内容齐全可以脱离课本自学 第一章 java概述;第二章 java语言基础; 第三章 类与对象;第四...

    Java简明教程-第3版-课件和程序举例源码

    此外,本教程可能还会介绍一些高级主题,如反射、枚举、注解、泛型、Lambda表达式、JavaFX(用于创建桌面应用程序)以及Java EE(企业级应用开发)的基础知识。 总之,“Java简明教程-第3版”的课件和源码是一个...

    疯狂JAVA讲义

    4.6.6 数组的应用举例 103 4.7 本章小结 106 本章练习 106 第5章 面向对象(上) 107 5.1 类和对象 108 5.1.1 定义类 108 学生提问:构造器不是没有返回值吗?为什么不能用void修饰呢? 110 5.1.2 对象的产生...

    尚硅谷_宋红康_第12章_泛型.pdf

    ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千斤 2.课程内容推陈出新: ·基于JDK 11,将Java8、Java9、Java10、Java11新特性一网打尽 ·课程中,Eclipse...

    java 面试经验.docx

    面向对象编程:理解并掌握封装、继承、多态等基本概念,并能举例说明。 2. 深入Java高级特性 泛型:理解其用途、类型擦除机制及如何与集合框架一起使用。 反射:了解反射的用途、工作原理及安全性考虑。 注解:理解...

    10道腾讯的Java面试题答案.zip

    - 题目:泛型在Java中的作用和限制。 - 答案:泛型提供类型安全,防止类型转换错误,增强代码可读性。但泛型擦除意味着运行时无法检测类型,且不能用基本类型创建泛型数组。 10. **并发编程** - 题目:描述Java...

    Java简明教程

    Java编程基础、面向对象编程原理、接口、包、泛型的基本概念、链表、栈、散列、字符串处理、异常处理、输入输出、多线程、小程序、Swing图形界面设计、事件处理、数据库常用操作方法以及基于Access数据库编程的综合...

    21天通JAVA

    最后,可能会涉及到一些高级话题,如反射(Reflection)、注解(Annotation)以及JAVA的泛型(Generics)。反射允许程序在运行时动态地获取类的信息并进行操作;注解提供了一种元数据,可以用于代码的编译、部署和...

Global site tag (gtag.js) - Google Analytics