自定义泛类:我们在定义类的时候,可以在类名后面添加
然后在该类中,成员变量的类型.方法返回值的类型,方法参数类型等地方,使用该标识符来确定它们的类型,具体类型是在创建对象的时指定的
实例代码:
package com.iweb.test;
import java.util.*;
import java.util.Random;
public class ProductList<T> {
private T product;//奖品
ArrayList<T> list =new ArrayList<>();
Random random =new Random();//RANDOM函数
//往奖池中添加奖品
public void addProduct(T t)
{
list.add(t);
}
public ProductList() {
this.product = product;
}
public T getProduct() {
product=list.get(random.nextInt(list.size()));//从奖池内随机抽取
return product;
}
public void setProduct(T product) {
this.product = product;
}
//从奖池中通过随机方法抽取奖品
}
它的测试类:
package com.iweb.test;
public class Test7 {
public static void main(String[] args) {
Generic<String> stringGeneric=new Generic<>();
System.out.println(stringGeneric);
Generic<Integer> integerGeneric =new Generic<>();
System.out.println(integerGeneric);
}
}
抽奖器,我们先定义一个泛型奖品类
package com.iweb.test;
import java.util.*;
import java.util.Random;
public class ProductList<T> {
private T product;//奖品
ArrayList<T> list =new ArrayList<>();
Random random =new Random();//RANDOM函数
//往奖池中添加奖品
public void addProduct(T t)
{
list.add(t);
}
public ProductList() {
this.product = product;
}
public T getProduct() {
product=list.get(random.nextInt(list.size()));//从奖池内随机抽取
return product;
}
public void setProduct(T product) {
this.product = product;
}
//从奖池中通过随机方法抽取奖品
}
在具体实现类的时候,需要明确泛型类型,
ProductList<String> pl =new ProductList();
ProductList<Integer> pl1 =new ProductList();
定义一个数组,通过addProduct给pl和pl1赋值
String[] arr =new String[]{"苹果手机","华为手机","小米手机",null,null};
for (int i = 0; i < arr.length; i++) {
pl.addProduct(arr[i]);
}
Integer[] arr1 =new Integer[]{10000,5000,3000,null,null};
for (int i = 0; i < arr1.length; i++) {
pl1.addProduct(arr1[i]);
}
完整测试代码:
package com.iweb.test;
public class Test8 {
public static void main(String[] args) {
ProductList<String> pl =new ProductList();
String[] arr =new String[]{"苹果手机","华为手机","小米手机",null,null};
for (int i = 0; i < arr.length; i++) {
pl.addProduct(arr[i]);
}
String product = pl.getProduct();
if (product != null) {
System.out.println(product);
}
else
System.out.println("下次加油");
System.out.println("————————————————————————");
ProductList<Integer> pl1 =new ProductList();
Integer[] arr1 =new Integer[]{10000,5000,3000,null,null};
for (int i = 0; i < arr1.length; i++) {
pl1.addProduct(arr1[i]);
}
Integer product1 = pl1.getProduct();
if (product1 != null) {
System.out.println(product1);
}
else
System.out.println("下次加油");
}
}