给大忙人看的Java核心技术笔记(6泛型编程)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给大忙人看的Java核心技术笔记(6泛型编程)相关的知识,希望对你有一定的参考价值。

要点:

  泛型类是带有一个或多个类型参数的类

  泛型方法是带有类型参数的方法

  可以要求类型参数必须是一个或者多个类型的子类型

  泛型类型是不变得:当S是T的子类型是,G<S>和G<T>没有关系

  通过使用通配符G<? extends T>或者 G<? super T>,你可以指定一个方法接受一个带子类或父类参数的泛型类型的实例

  当泛型类和方法被编译时,类型参数会被擦除

  类型擦除对泛型有诸多限制。特别是,不能实例化泛型类或数组。不能转换成泛型类型,或者抛出一个泛型类型对象。

  即使泛型类和方法在虚拟机中被擦除,你也可以在运行时找出他们是如何声明的。

1、泛型类

  ※类型参数不能用基本类型实例化。例如Entry<String, int>在Java中是无效的。

  当构造一个泛型类对象时,可以在构造函数中省略类型参数。

1 Entry<String, Integer> entry = new Entry<>("1",1);

2、泛型方法

  当声明一个反洗方法时,类型参数要放在修饰符之后,返回类型之前。当调用时,不要指定类型参数。它可以从方法的参数和返回类型中推断出来。

  也可以在调用时候显示的写出来

1 public static <T> void swap(T[] array, int i, int j);
2 Arrays.<String>swap(friends,0,1);

3、类型限定

  泛型类或方法的类型参数需要满足某些要求,或者是需要能够调用一些通用的方法。可以对类型做出限定。

  T extends AutoCloseable

  类型参数可以有多个限定:  T extends Runnable & AutoCloseable

  ※可以有多个接口限定,但最多只能有一个是类。如果有一个限定是类,则它必须放在限定列表的第一位。

 

以上是关于给大忙人看的Java核心技术笔记(6泛型编程)的主要内容,如果未能解决你的问题,请参考以下文章

给大忙人看的Java核心技术笔记(7集合)

《写给大忙人看的java》笔记--基本的编程结构

写给大忙人看的进程和线程

学习笔记Java基础知识——泛型与集合

奉劝各位准备面试的 Java 程序员耗子尾汁,赶紧扔掉网上那些千篇一律的面试题

写给大忙人看的操作系统