利用自定义泛类制作一个抽奖器

发布于:2024-07-21 ⋅ 阅读:(180) ⋅ 点赞:(0)

自定义泛类:我们在定义类的时候,可以在类名后面添加

然后在该类中,成员变量的类型.方法返回值的类型,方法参数类型等地方,使用该标识符来确定它们的类型,具体类型是在创建对象的时指定的

实例代码:

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("下次加油");
    }

}


网站公告

今日签到

点亮在社区的每一天
去签到