`
roway
  • 浏览: 50716 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第十一:泛型(上)

 
阅读更多

一:

将原本确定不变的数据类型参数化

二:

作为对原有Java类型体系的扩充,使用泛型可以提高Java应用程序的类型安全、可维护性和可靠性

三:

创建集合容器时规定其允许保存的元素类型,然后由编译器负责添加元素的类型合法性检查,

再去用集合元素时则不必再进行造型处理(cast强制类型转换)

public class GenericFoo<T> {// 泛型类
	private T foo;

	public T getFoo() {
		return foo;
	}

	public void setFoo(T foo) {
		this.foo = foo;
	}

	public static void main(String[] args) {
		GenericFoo<Boolean> foo1 = new GenericFoo<Boolean>();// 在声明的时候指定类型
		GenericFoo<Integer> foo2 = new GenericFoo<Integer>();

		// foo1=foo2;//类型不一样,赋值出错

		foo1.setFoo(new Boolean(true));
		Boolean b = foo1.getFoo();
		System.out.println(b);

		foo2.setFoo(new Integer(10));
		Integer num = foo2.getFoo();
		System.out.println(num);

		// GenericFoo foo3 = new GenericFoo();//相当于下面的代码
		GenericFoo<Object> foo3 = new GenericFoo<Object>();
		foo3.setFoo("helloworld");
		Integer in = (Integer) foo3.getFoo();// 编译时不出错
		System.out.println(in);// 运行时会出错

		Date d1 = new Date();
		Date d2 = new Date();

		d1 = d2;

		List<String> list = new ArrayList<String>();
		list.add("hello");
		list.add("world");
		list.add("helloworld");
		// list.add(1);//添加的类型不是指定的String类型会报错
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}

		// for-each循环
		for (String string : list) {
			System.out.println(string);
		}

		// 迭代循环
		for (Iterator<String> it = list.iterator(); it.hasNext();) {
			System.out.println(it.next());
		}
	}
}


分享到:
评论

相关推荐

    C++程序设计与实践:11-模板和泛型编程.ppt

    由于类型的确定在编译之前已经确定,因此,泛型编程实际上是某种形式上的静态多态。 在 C++ 中,模板分为两种:函数模板和类模板。函数模板是一类函数的抽象,由函数模板产生的函数称为模板函数,是函数模板的实例...

    JAVA-微讲堂01环境变量-陈冬

    讲:陈冬 第一课:计算机中的环境变量 第二课:认识JVM 安装JDK 第三课:认识JAVA中的变量 第三课:理解类与对象 第三课附加:值传递和对象传递 ...第十一课:socket 第十二课:jdbc 第十三课:设计模式

    第十五课 泛型基础1

    泛型是TypeScript中一种强大的特性,它允许我们在编写代码时创建可重用的组件,这些组件能够适应各种不同类型的参数。在前端开发中,掌握泛型有助于编写更灵活、更具可维护性的代码。 首先,泛型的基础在于类型变量...

    Java基础入门自学课件 第11章 泛型(共4页).rar

    在这个“Java基础入门自学课件 第11章 泛型”中,我们可以期待学习到以下几个核心知识点: 1. **泛型的基本概念**:泛型允许我们在定义类、接口和方法时指定一种或多种类型参数,这样在实际使用时可以传入具体的...

    第十三章 泛型程序设计

    **第十三章 泛型程序设计** 泛型是Java编程语言中的一个重要特性,引入于Java 5.0,它允许在定义类、接口和方法时使用类型参数,从而提高了代码的类型安全性和重用性。泛型的主要目标是提供一种方式来限制容器对象...

    Java基础入门自学课件 第11章 泛型(共4页).ppt

    Java泛型是自Java SE 5.0引入的一项重要特性,它允许在定义类、接口和方法时使用类型参数,从而增强了代码的类型安全性和可读性。泛型的使用可以减少强制类型转换的麻烦,并在编译时就发现可能存在的类型错误。本...

    第11章泛型和容器类(第7版).pptx

    第11章泛型和容器类(第7版)

    C++ primer 第十六章 泛型 实现自定义Queue 修改版

    "C++ primer 第十六章 泛型 实现自定义Queue 修改版"的主题主要围绕如何利用C++的模板机制来实现一个自定义的队列(Queue)容器。在实现过程中,可能会遇到模板编译错误,解决这些问题需要对C++的模板语法有深入的...

    Java1.5泛型指南中文版

    假设有一个泛型方法`printFirstElement`,它可以接受任何类型的列表并打印出第一个元素。使用通配符,可以编写如下代码: ```java public static &lt;T&gt; void printFirstElement(List&lt;? extends T&gt; list) { System.out...

    集合框架与泛型课件

    **集合框架与泛型**是Java编程语言中的核心特性,对于初学者来说,理解并熟练掌握这两个...结合提供的课件“第六章 集合框架与泛型.ppt”,初学者可以通过系统学习和实践,进一步提升对Java高级特性的理解和应用能力。

    C++ Primer学习笔记——$11 泛型算法

    - `find_first_of`算法:查找两个范围内的第一个匹配元素,允许使用自定义比较函数`pr(*it1, *it2)`。 2. 改写元素算法: 这类算法会改变容器内的元素值,但在使用时需确保有足够的空间来容纳修改。例如: - `...

    C++Primer第11章-泛型算法-课后习题答案[收集].pdf

    在C++编程中,泛型算法是用于处理各种不同数据结构(如数组、向量、列表等)的一组通用函数,这些函数不依赖于特定的数据类型。本篇内容主要涉及了两个重要的泛型算法——`count`和`accumulate`,以及如何在实际编程...

    JAVA-Study:JAVA学习

    根据Kiseon Paik的Live Java Study课程进行的个人学习 第一周:什么是JVM,Java代码...第十周:多线程编程 第11周的任务:枚举 第12周的作业:注释 第13周的挑战:I / O 第14周的任务:泛型 第15周的任务:Lambda表达

    HackerRank 30天代码:HackerRank 30天代码解决方案c#

    第一天:数据类型第2天:操作员第3天:条件语句简介第四天:课堂与实例第五天:循环第6天:让我们回顾一下第7天:阵列第8天:字典和地图第9天:递归3 第10天:二进制数第11天:2D阵列第十二天:继承第13天:抽象课...

    Java开发详解.zip

    031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf...

    java开发实战经典第十一章课后习题答案

    第十一章通常会涉及一些高级话题或实际应用案例,可能是关于集合框架、多线程、网络编程、IO流或者异常处理等内容。课后习题是检验学习成果、提升编程技能的重要环节,通过解答这些问题,初学者可以巩固理论知识,...

Global site tag (gtag.js) - Google Analytics