JAVA Day24
泛型
- 目的:为了避免在有类型转换的程序运行时出现ClassCastException异常。
- 优点:编译期间检查类型;减少了数据类型转化。
- 本质:将类型参数化。
- 将所需的数据类型传入<>中,从而影响该类中可能用到的方法,变量等。
- 注意事项
![]()
泛型类简单的应用
package generic;
import java.util.ArrayList;
import java.util.Random;
public class Demo01 {
public static void main(String[] args) {
ProductGetter<String> stringProductGetter = new ProductGetter<>();
String[] strProduct = {"A","B","C","D"};
for (int i = 0; i < strProduct.length; i++) {//把奖品放入奖池
stringProductGetter.addProduct(strProduct[i]);
}
String product1 = stringProductGetter.getProduct();
System.out.println(product1);
System.out.println("------------------");
ProductGetter<Integer> integerProductGetter=new ProductGetter<>();
int[] intProduct = {200,500,1000,3000};
for (int i = 0; i < intProduct.length; i++) {
integerProductGetter.addProduct(intProduct[i]);
}
int product2 = integerProductGetter.getProduct();
System.out.println(product2);
}
}
class ProductGetter<T>{
Random random = new Random();
private T product;//奖品
ArrayList<T> list =new ArrayList<>();//奖池
public void addProduct(T t){//添加奖品
list.add(t);
}
public T getProduct(){//抽奖
product = list.get(random.nextInt(list.size()));//nextInt(n)生成到n之间的一个随机整数
return product;
}
}
泛型类派生子类
![]()
- 在创建子类对象时会先创建一个父类,若子类和父类的类型参数不一致则不符合要求,故子类和父类的泛型类型要一致。
- 若子类需要声明多个类型参数,父类应至有一个泛型类型参数与子类相同。