Java 中泛型的基本使用

目录

一、泛型类的使用

二、泛型接口的使用

三、泛型方法的使用

相关测试


一、泛型类的使用

/* 泛型类,T 表示 Java 中的任意类型,
   也就是说构造方法中 data 属性可以传递任意类型的值*/
class ResultData{
    Integer code;
    String msg;
    T data;

    public ResultData(Integer code,String msg,T data){
        this.code=code;
        this.msg=msg;
        this.data=data;
    }
}

二、泛型接口的使用

// 泛型接口
interface MyInterface{
    public void test(T t);
}

三、泛型方法的使用

// 泛型方法的定义方式,必须在返回值类型之前加上  泛型类型,才能在方法中使用泛型类
    public static  T toObject(String json,Class tClass) throws JsonProcessingException {
        ObjectMapper mapper=new ObjectMapper();
        T t = mapper.readValue(json, tClass);
        return t;
    }

    // ? 表示任意类型
    public static void test1(List list){
        for (Object o : list) {
            System.out.println(o);
        }
    }

    /**
     * 上下边界
     *   上边界:? extends 类名,此时的 ? 必须是此类的子类或类本身
     *   下边界:? super 类名,此时的 ? 必须是此类的父类或类本身
     */
    public static  void test2(List> list){

    }
    public static void test3(List list){

    }

相关测试

        List stringList=new ArrayList<>();
        List objectList=new ArrayList<>();
        List numberList=new ArrayList<>();
        List integerList=new ArrayList<>();
        // test1 方法均可调用
        test1(stringList);
        test1(objectList);
        test1(numberList);
        test2(integerList);

        test2(stringList);
        test2(integerList);
        test2(objectList); // 报错,传入的类型必须是Comparable的实现类或 Comparable本类
        test2(numberList); // 报错,传入的类型必须是Comparable的实现类或 Comparable本类

        test3(objectList);
        test3(numberList);
        test3(integerList); // 报错,传入的类型必须是Number的父类或 Number本类

你可能感兴趣的:(java,开发语言)