泛型与枚举

为什么要引入泛型

泛型的本质就是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。
也就是说泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

引入的意义在于:

适用于多种数据类型执行相同的代码。
如果没有泛型,要实现不同类型的加法,每种类型都需要重载一个add方法;通过泛型,我们可以复用为一个方法


如图中所示,要是有不同的数据类型就要重写许多的方法

泛型限定

如果想要对?泛型通配符的使用范围进行限制,那么可以使用泛型限定(上限,下限)
​ <? extends A>:泛型类型要么是A类,要么是A类的子类, 孙子类…。 上限。
​ <? super A>: 泛型类型要么是A类,要么是A类的父类, 爷爷类 直到Object类。 下限。

###枚举类型
定义:
用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。是指将变量的水电费水电费水电费列出来,变量的值只限于列举出来的值的范围内。
在JDK1.5 之前,我们定义常量都是: public static fianl… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

public enum Color {

RED, GREEN, BLANK, YELLOW

}

	public enum Color {  
	RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
	// 成员变量  
	private String name;  
	private int index;  
	// 构造方法  
	private Color(String name, int index) {  
		this.name = name;  
		this.index = index;  
	}  
	// 普通方法  
	public static String getName(int index) {  
		for (Color c : Color.values()) {  
			if (c.getIndex() == index) {  
				return c.name;  
			}  
		}  
		return null;  
	}  
	// get set 方法  
	public String getName() {  
		return name;  
	}  
	public void setName(String name) {  
		this.name = name;  
	}  
	public int getIndex() {  
		return index;  
	}  
	public void setIndex(int index) {  
		this.index = index;  
	}  
}

###枚举实现单例模式:
image
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型
擦除 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值