泛型
泛型
1、什么是泛型?
泛型就是在定义类或者方法时,不明确它的类型,我们定义的一种不确定类型。
2、如何去使用?
(1)、在类中定义:正如代码中的额Test定义
public class Demo01 {
public static void main(String[] args) {
Test<String> test = new Test<>();
test.setData("test");
System.out.println(test.getData());
}
}
class Test<A> {
private A data;
public void setData(A data) {
this.data = data;
}
public A getData() {
return this.data;
}
}
(2)、泛型在接口中的定义
public class Demo02 {
public static void main(String[] args) {
Apple a = new Apple();
Banana<String> b = new Banana<>();
System.out.println(a.test());
b.data = "香蕉类的测试";
System.out.println(b.test());
}
}
interface Fruit<T>{
public T test();
}
/**
* 第一类,准确的定义通配符
*/
class Apple implements Fruit<String> {
private String test = "123";
public String test() {
return this.test;
}
}
/**
* 第二类不准去的定义通配符,需要由调用者来取调用
* @param <T>
*/
class Banana<T> implements Fruit<T> {
T data;
public T test() {
return this.data;
}
}
(3)、泛型限定和通配符
public class Demo03 {
/**
* 泛型通配符的使用
*/
public static void main(String[] args) {
Test2<? super Chair> t1 = new Test2<Thing>();
Test2<? extends Thing> t2 = new Test2<Chair>();
}
}
/**
* 父类Thing
*/
class Thing {
int data;
}
/**
* 子类Chair
*/
class Chair extends Thing {
}
/**
* 测试类
* @param <传递的泛型>
*/
class Test2<T> {
T data;
}
浙公网安备 33010602011771号