本文主要是介绍Java 中泛型的基本使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、泛型类的使用
二、泛型接口的使用
三、泛型方法的使用
相关测试
一、泛型类的使用
/* 泛型类,T 表示 Java 中的任意类型,也就是说构造方法中 data 属性可以传递任意类型的值*/
class ResultData<T>{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<T>{public void test(T t);
}
三、泛型方法的使用
// 泛型方法的定义方式,必须在返回值类型之前加上 <T> 泛型类型,才能在方法中使用泛型类public static <T> T toObject(String json,Class<T> 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 <T> void test2(List<? extends Comparable<T>> list){}public static void test3(List<? super Number> list){}
相关测试
List<String> stringList=new ArrayList<>();List<Object> objectList=new ArrayList<>();List<Number> numberList=new ArrayList<>();List<Integer> 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 中泛型的基本使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!