您的位置 首页 java

java高级特性之泛型和枚举

java高级特性之泛型和枚举

点击蓝字

关注我们

一、 泛型

Java 泛型 是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

java高级特性之泛型和枚举

1.泛型的好处

安全

泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

在没有泛型之前,从集合中读取到的每一个对象都必须进行类型转换,如果不小心插入了错误的类型对象,在运行时的转换处理就会出错。

没有泛型的情况下使用集合:

java高级特性之泛型和枚举

有泛型的情况下使用集合:

java高级特性之泛型和枚举

有了泛型后,定义好的集合names在编译的时候add(123)就会编译不通过。

消除强制转换

消除源代码中的许多强制类型转换,这使得代码更加可读,并且减少了出错机会。

没有泛型的代码段需要强制转换:

java高级特性之泛型和枚举

当重写为使用泛型时

java高级特性之泛型和枚举

2.泛型方法

定义泛型方法的规则:

1.所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。

2.每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。

3.类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。

泛型标记符:

E – Element (在集合中使用)

T – Type(类)

K – Key(键)

V – Value(值)

N – Number(数值类型)

?- 不确定的类型

3.如何使用泛型

public class 类名 <泛型类型1,…> {

//

}

注意事项: 泛型类型必须是引用类型(非基本数据类型)

定义泛型类,在类名后添加一对尖括号,并在尖括号中填写类型参数,参数可以有多个,多个参数使用 逗号 分隔:

public class Generic Classaaa<a,b,c>{}

public <泛型类型> 返回类型 方法名(泛型类型 变量名) {

//

}

注意:

方法声明中定义的 形参 只能在该方法里使用,而接口、类声明中定义的类型形参则可以在整个接口、类中使用。

二、枚举

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。

Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。

例如定义一个颜色的枚举类。

enum Color {

RED, GREEN, BLUE;

}

使用实例:

java高级特性之泛型和枚举

每个枚举都是通过 Class 在内部实现的,且所有的 枚举值 都是 public static final 的。

以上的枚举类 Color 转化在内部类实现:

java高级特性之泛型和枚举

泛型和枚举知识总结就到这里,希望对大家有所帮助!

END

星辰大海,永不止步

文章来源:智云一二三科技

文章标题:java高级特性之泛型和枚举

文章地址:https://www.zhihuclub.com/189670.shtml

关于作者: 智云科技

热门文章

网站地图