`
schy_hqh
  • 浏览: 561731 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

(基础)java中的泛型

 
阅读更多

 

泛型的定义:

<T> 

 

泛型的作用:

1.限定具体类型,确保类型一致,避免类型转换异常

2.不指定具体类型,提高功能的复用性

 

 

 

泛型---定义在类上

 

public class PersonComparator implements Comparator<Person> {

	@Override
	public int compare(Person o1, Person o2) {
		//1.按姓名比较
		int comp = o1.getName().compareTo(o2.getName());
		//2.姓名相同,则继续按年龄比较,否则按姓名排序
		return comp==0?(o1.getAge()-o2.getAge()):comp;
	}

}

 

 

 

泛型---定义在方法上

 

	public static void main(String[] args) {
		show(1);
		show("abc");
		Person p = new Person("zs");
		show(p);
	}
	
	public static <T> void show(T t) {
		System.out.println(t);
	}
 

 

 

泛型---通配符 ?

public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		iterColletion(list);
		
		Set<String> set = new TreeSet<String>();
		set.add("a");
		set.add("b");
		iterColletion(set);
	}
	
	/**
	 * 泛型通配符 ? 
	 * 当类型不确定时/无法指定具体类型/需要类型复用时,使用通配符
	 * @param coll
	 */
	public static void iterColletion(Collection<?> coll) {
		Iterator<?> iter = coll.iterator();
		while(iter.hasNext())
			System.out.println(iter.next());
	}

 

泛型---限定上限

 

public static void main(String[] args) {
		List<Student> stuList = new ArrayList<Student>();
		stuList.add(new Student("zs"));
		iterColletion(stuList);
		
		Set<Teacher> teacSet = new HashSet<Teacher>();
		teacSet.add(new Teacher("ls"));
		iterColletion(teacSet);
	}
	
	/**
	 * 泛型-限定上限     ? extends E  
	 * 只接收指定E类型及其子类型,这样就可以在迭代集合时使用父类中的方法了。
	 * @param coll
	 */
	public static void iterColletion(Collection<? extends Person> coll) {
		Iterator<? extends Person> iter = coll.iterator();
		while(iter.hasNext()) {
			Person p = iter.next();
			System.out.println(p.getName()+":"+p.getAge());
		}
	}

 

分享到:
评论

相关推荐

    Java泛型编程指南.pdf

    ### Java泛型编程指南知识点详解 #### 一、绪论:理解Java泛型的重要性与背景 **1.1 泛型的基本概念** 泛型是一种在编程语言中支持编写类型安全的通用函数或类的能力。在Java中引入泛型的主要目的是为了提供更...

    关于java基础的泛型的练习

    通过以上知识点,我们可以看到Java泛型在编程中的重要性和灵活性。理解和掌握这些概念对于编写高效、安全的Java代码至关重要。在实际开发中,熟练运用泛型可以显著提高代码质量,减少潜在的错误,并提高代码的可维护...

    关于C#、java泛型的看法

    在Java中,泛型同样使用尖括号表示,但它的类型擦除特性使得编译后的字节码并不包含类型参数信息,而是使用Object或其他基础类型作为替代。这意味着Java的泛型不支持协变和逆变,但可以通过通配符(如?)来放宽类型...

    java泛型的内部原理及更深应用

    Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...

    Java1.5泛型指南中文版(Java1.5Gene....pdf

    本资源为 Java 1.5 泛型指南中文版的详细笔记,涵盖了泛型的基础知识、泛型类、泛型方法、通配符、擦除和翻译、类型安全、类型参数、实际类型参数、擦除、翻译、转型和 instanceof、数组、Class Literals as Run-...

    Java基础入门四泛型反射注解.pdf

    在Java基础入门四泛型、反射、注解的学习中,我们会了解到如何正确使用泛型来创建更加健壮的代码,如何利用反射机制实现类和对象的动态操作,以及如何利用注解来简化开发过程和提高代码的可读性。 此外,文档中提到...

    Java基础篇:泛型.pdf

    Java泛型的一个重要应用是在集合框架中。在JDK 1.5之前,Java集合类框架使用Object作为元素类型,这意味着集合可以存储任何类型的对象。然而,这种设计导致在从集合中获取元素时必须进行类型转换,这个过程是繁琐且...

    java泛型集合 java集合 集合 java Collection

    总的来说,Java泛型集合和集合框架提供了强大的数据存储和处理能力,而`Collection`接口作为基础,连接了各种集合类型。了解并熟练掌握这些概念和用法,对于提高Java编程效率和代码质量至关重要。

    java基础泛型 学习全文件

    1. 类型参数:泛型中的“T”、“E”等字母被称为类型参数,它们代表了一种未知的类型,可以在实例化时指定具体的类型。 2. 泛型类:定义泛型类时,可以在类名后面添加类型参数,如`public class Box&lt;T&gt; { ... }`,...

    java泛型学习ppt

    * 泛型中有继承的概念吗? * ArrayList&lt;Integer&gt; al2=new ArrayList(); //1 al2.add(new Integer(10));//2 Integer i2=al2.get(0);//3 ArrayList&lt;Object&gt; alO=al2;// 这样可以吗? * 如果说 ArrayList&lt;Integer&gt; 是一...

    Java 基础泛型.pdf

    Java泛型是Java编程语言中的一个关键特性,它允许开发者在编写代码时引入类型参数,以提高代码的灵活性、安全性和可复用性。泛型的主要目标是在编译时进行类型检查,确保代码在运行时不会出现类型转换异常。下面我们...

    Java1.5泛型指南中文版.doc

    ### Java 1.5 泛型指南中文版知识点解析 #### 1. 引言 在Java 1.5中引入的泛型是一种强大的类型安全机制,它允许开发者...这些知识点涵盖了从基础到高级的泛型使用技巧,对于学习和应用Java泛型具有重要的指导意义。

    java泛型指南 经典

    ### Java泛型指南经典知识点解析 #### 一、引言 Java 1.5 版本引入了一系列重要的语言特性,其中“泛型”是其中一项关键特性。泛型的引入极大地提高了 Java 语言的类型安全性和代码重用性。本文档旨在深入探讨 ...

    Java语言 泛型讲解案例代码 (泛型类、泛型接口、泛型方法、无界及上下限通配符、泛型对协变和逆变的支持、类型擦除 ...)

    学习和理解Java泛型的基本概念和语法; 实际项目中需要使用泛型来增加类型安全性和重用性的开发任务。 目标: 本代码资源的目标是帮助读者理解泛型的用法和优势,并通过实际的示例代码加深对泛型的掌握。读者可以...

    【Java基础】泛型方法 - 右撇子 - 博客频道 - CSDN.NET

    【Java基础】泛型方法 - 右撇子 - 博客频道 - CSDN.NET

    Java1.5泛型指南中文版

    通配符是泛型中的一个重要概念,它允许我们编写更为灵活的代码。例如,我们可以使用通配符来处理不确定类型的列表: ```java List&lt;?&gt; unknownList; // 未知类型的列表 unknownList.add(null); // 可以添加null值 ``...

    java 泛型的使用 详细讲解

    本文将详细介绍Java泛型的概念、原理以及如何在实际开发中使用泛型。 #### 二、泛型的概念与意义 ##### 2.1 什么是泛型? 泛型(Generics)是指在面向对象编程中,通过参数化类型来达到类型重用的目的。通俗地说...

    java集合 框架 泛型

    Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...

    java零基础自学 之 JAVA泛型

    本文将深入探讨Java泛型的基本概念、好处以及与继承的关系。 首先,让我们理解泛型是如何工作的。在Java中,泛型通过对类型系统进行扩展实现,允许我们创建可以接受不同类型参数的类、接口和方法。类型参数,用尖...

Global site tag (gtag.js) - Google Analytics