泛型的定义:
<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泛型编程指南知识点详解 #### 一、绪论:理解Java泛型的重要性与背景 **1.1 泛型的基本概念** 泛型是一种在编程语言中支持编写类型安全的通用函数或类的能力。在Java中引入泛型的主要目的是为了提供更...
通过以上知识点,我们可以看到Java泛型在编程中的重要性和灵活性。理解和掌握这些概念对于编写高效、安全的Java代码至关重要。在实际开发中,熟练运用泛型可以显著提高代码质量,减少潜在的错误,并提高代码的可维护...
在Java中,泛型同样使用尖括号表示,但它的类型擦除特性使得编译后的字节码并不包含类型参数信息,而是使用Object或其他基础类型作为替代。这意味着Java的泛型不支持协变和逆变,但可以通过通配符(如?)来放宽类型...
Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...
本资源为 Java 1.5 泛型指南中文版的详细笔记,涵盖了泛型的基础知识、泛型类、泛型方法、通配符、擦除和翻译、类型安全、类型参数、实际类型参数、擦除、翻译、转型和 instanceof、数组、Class Literals as Run-...
在Java基础入门四泛型、反射、注解的学习中,我们会了解到如何正确使用泛型来创建更加健壮的代码,如何利用反射机制实现类和对象的动态操作,以及如何利用注解来简化开发过程和提高代码的可读性。 此外,文档中提到...
Java泛型的一个重要应用是在集合框架中。在JDK 1.5之前,Java集合类框架使用Object作为元素类型,这意味着集合可以存储任何类型的对象。然而,这种设计导致在从集合中获取元素时必须进行类型转换,这个过程是繁琐且...
总的来说,Java泛型集合和集合框架提供了强大的数据存储和处理能力,而`Collection`接口作为基础,连接了各种集合类型。了解并熟练掌握这些概念和用法,对于提高Java编程效率和代码质量至关重要。
1. 类型参数:泛型中的“T”、“E”等字母被称为类型参数,它们代表了一种未知的类型,可以在实例化时指定具体的类型。 2. 泛型类:定义泛型类时,可以在类名后面添加类型参数,如`public class Box<T> { ... }`,...
* 泛型中有继承的概念吗? * ArrayList<Integer> al2=new ArrayList(); //1 al2.add(new Integer(10));//2 Integer i2=al2.get(0);//3 ArrayList<Object> alO=al2;// 这样可以吗? * 如果说 ArrayList<Integer> 是一...
Java泛型是Java编程语言中的一个关键特性,它允许开发者在编写代码时引入类型参数,以提高代码的灵活性、安全性和可复用性。泛型的主要目标是在编译时进行类型检查,确保代码在运行时不会出现类型转换异常。下面我们...
### Java 1.5 泛型指南中文版知识点解析 #### 1. 引言 在Java 1.5中引入的泛型是一种强大的类型安全机制,它允许开发者...这些知识点涵盖了从基础到高级的泛型使用技巧,对于学习和应用Java泛型具有重要的指导意义。
### Java泛型指南经典知识点解析 #### 一、引言 Java 1.5 版本引入了一系列重要的语言特性,其中“泛型”是其中一项关键特性。泛型的引入极大地提高了 Java 语言的类型安全性和代码重用性。本文档旨在深入探讨 ...
学习和理解Java泛型的基本概念和语法; 实际项目中需要使用泛型来增加类型安全性和重用性的开发任务。 目标: 本代码资源的目标是帮助读者理解泛型的用法和优势,并通过实际的示例代码加深对泛型的掌握。读者可以...
【Java基础】泛型方法 - 右撇子 - 博客频道 - CSDN.NET
通配符是泛型中的一个重要概念,它允许我们编写更为灵活的代码。例如,我们可以使用通配符来处理不确定类型的列表: ```java List<?> unknownList; // 未知类型的列表 unknownList.add(null); // 可以添加null值 ``...
本文将详细介绍Java泛型的概念、原理以及如何在实际开发中使用泛型。 #### 二、泛型的概念与意义 ##### 2.1 什么是泛型? 泛型(Generics)是指在面向对象编程中,通过参数化类型来达到类型重用的目的。通俗地说...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
本文将深入探讨Java泛型的基本概念、好处以及与继承的关系。 首先,让我们理解泛型是如何工作的。在Java中,泛型通过对类型系统进行扩展实现,允许我们创建可以接受不同类型参数的类、接口和方法。类型参数,用尖...