java泛型的定义和使用,Java的泛型
Java泛型
泛型提供了编译时类型安全检测机制,允许程序员在编译时检测非法类型。泛型的本质是参数化类型,即被操作的数据类型被指定为参数。
例如,如果我们想编写一个排序方法,可以对整数数组、字符串数组甚至任何其他类型的数组进行排序,我们可以使用Java泛型。
免费在线学习视频推荐:java在线视频
1.泛型方法
您可以编写一个泛型方法,在被调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每个方法调用。
例如:
public static E void print array(E[]input array){
for ( E element : inputArray ){
System.out.printf( %s ,element);
}
}泛型边界
(1)?Extends T表示由这个通配符表示的类型是T类型的子类。
(2)?T表示由这个通配符表示的类型是T类型的父类。
2.泛型类
泛型类的声明与非泛型类的声明类似,只是类型参数声明部分添加在类名之后。像泛型方法一样,泛型类的类型参数声明部分也包含一个或多个类型参数,用逗号分隔。
泛型参数也称为类型变量,是用于指定泛型类型名称的标识符。因为它们接受一个或多个参数,所以这些类被称为参数化类或参数化类型。
例如:
公共类BoxT {
私人T t
public void add(T t) {
this.t=t
}
public T get() {
return t;
}
}3.类型通配符?
一般使用通配符类型?而不是特定的类型参数。比如名单?逻辑上,它是所有list具体类型参数(如List、List和List)的父类。
4.类型擦除
Java中的泛型基本上是在编译器级别实现的。生成的Java字节码不包含泛型中的类型信息。使用泛型时添加的类型参数将在编译时被编译器移除。这个过程被称为类型擦除。
代码中定义的List、List等类型,编译后都会变成列表。JVM看到的只是列表,但是泛型附加的类型信息对JVM是不可见的。
类型擦除的基本过程也相对简单。第一步是找到特定的类来替换类型参数。这个具体的类通常是Object。如果指定了类型参数的上限,则使用该上限。用具体的类替换代码中的所有类型参数。
java相关文章教程:java语言入门以上是Java泛型详细介绍的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。