一、泛型
Java 泛型是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
1.泛型的好处
安全
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
在没有泛型之前,从集合中读取到的每一个对象都必须进行类型转换,如果不小心插入了错误的类型对象,在运行时的转换处理就会出错。
没有泛型的情况下使用集合:
有泛型的情况下使用集合:
有了泛型后,定义好的集合names在编译的时候add(123)就会编译不通过。
消除强制转换
消除源代码中的许多强制类型转换,这使得代码更加可读,并且减少了出错机会。
没有泛型的代码段需要强制转换:
当重写为使用泛型时
**
**
**
**
2.泛型方法
**
**
定义泛型方法的规则:
1.所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。
2.每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。
3.类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
泛型标记符:
E - Element (在集合中使用)
T - Type(类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
?- 不确定的类型
3.如何使用泛型
**
**
**public class 类名 <泛型类型1,…> {
**
//
}
**注意事项:**泛型类型必须是引用类型(非基本数据类型)
定义泛型类,在类名后添加一对尖括号,并在尖括号中填写类型参数,参数可以有多个,多个参数使用逗号分隔:
public class GenericClassaaa<a,b,c>{}
public <泛型类型> 返回类型 方法名(泛型类型 变量名) {
//
}
**
**
注意:
方法声明中定义的形参只能在该方法里使用,而接口、类声明中定义的类型形参则可以在整个接口、类中使用。
二、枚举
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。
Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。
例如定义一个颜色的枚举类。
enum Color {
RED, GREEN, BLUE;
}
**
**
使用实例:
**
**
**
**
每个枚举都是通过 Class 在内部实现的,且所有的枚举值都是 public static final 的。
以上的枚举类 Color 转化在内部类实现:
**
**
**泛型和枚举知识总结就到这里,希望对大家有所帮助!**
END
星辰大海,永不止步
l 的。
以上的枚举类 Color 转化在内部类实现:
**
**
[外链图片转存中…(img-LDBvnkhc-1662567992145)]
**泛型和枚举知识总结就到这里,希望对大家有所帮助!**
END
星辰大海,永不止步