Java 泛型
发布时间:2022-11-15 02:30:48 267
相关标签: # java# java# 数据
(目录)
一、说明
- 泛型(generics)本质是参数化类型,所操作的数据类型被指定为一个参数
- 提供编译时类型安全检测机制,允许程序员在编译时检测到非法的类型
二、理解
Java 泛型
- Java中的泛型只在编译阶段有效,不会进入到运行阶段
- 泛型有三种使用方式,泛型类、泛型接口、泛型方法
泛型类
- 类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开
泛型接口
- 该方法在调用时可以接收不同类型的参数
有界的类型参数
- 限制被允许传递到一个类型参数的类型种类范围
- 声明一个有界的类型参数,首先列出类型参数的名称,后跟
extends
关键字,最后紧跟它的上界
泛型标记符
- E - Element (在集合中使用,因为集合中存放的是元素)
- T - Type(Java 类)
- K - Key(键)
- V - Value(值)
- N - Number(数值类型)
- ? - 表示不确定的 java 类型
类型通配符
- 一般使用
?
代替具体的类型参数 extends T>
表示该通配符所代表的类型是T类型的子类super T>
表示该通配符所代表的类型是T类型的父类
三、实现
1.泛型类
创建genericity
类,实现写入和读取数据
public class genericity {
public static class Box {
private T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
public static void main(String[] args) {
Box integerBox = new Box();
Box stringBox = new Box();
integerBox.add(17);
stringBox.add(new String("Hello World"));
System.out.printf("Integer Value :%d\n", integerBox.get());
System.out.printf("String Value :%s\n", stringBox.get());
}
}
}
2.泛型方法
创建genericity
类,比较三个值并返回最大值
public class genericity {
public static > T maximum(T x, T y, T z){
T max = x;
if (y.compareTo(max) > 0){
max = y;
}
if (z.compareTo(max) > 0){
max = z;
}
return max;
}
public static void main(String[] args) {
System.out.printf( "Max of %d, %d and %d is %d\n",
13, 14, 17, maximum( 13, 14, 17 ) );
System.out.printf( "Maxm of %.1f,%.1f and %.1f is %.1f\n",
5.5, 2.2, 7.7, maximum( 5.5, 2.2, 7.7 ) );
System.out.printf( "Max of %s, %s and %s is %s\n",
"Shea", "Good", "Yeats", maximum( "Shea", "Good", "Yeats" ) );
}
}
3.类型通配符
public class genericity {
public static void getData(List> data) {
System.out.println("data :" + data.get(0));
}
public static void main(String[] args) {
List name = new ArrayList();
List age = new ArrayList();
List number = new ArrayList();
name.add("Yeats");
age.add(17);
number.add(17.17);
getData(name);
getData(age);
getData(number);
}
}
文章来源: https://blog.51cto.com/u_15872973/5842321
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报