List<String> list = new ArrayList<>(); 该写法正确
List list1 = new ArrayList<String>(); 该写法正确
List<String> list2 = new ArrayList<String>(); 该写法正确
list.add(111); 编译错误
list1.add(111);编译错误
list2.add(111);编译错误
由上面的代码可以知道,List<T> T代表要求的数据类型,如果add的不是这种类型的数据,将阻止add。
自定义泛型类
public class Result<T> {
private T data;
public Result(){}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public static void main(String[] args) {
Result<String> stringBox = new Result<>();
stringBox.setData("aaa");
Result<Integer> integerBox = new Result<>();
integerBox.setData(111);
System.out.println(stringBox.getClass()); 结果 class xinyuandianzi.Result
System.out.println(integerBox.getClass()); 结果 class xinyuandianzi.Result
}
}
泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。也就是编译的class文件是一样的,不管是Result<String>,还是Result<Integer>,都是Result类型
本文深入解析Java泛型的使用规则,包括List泛型实例化及类型检查机制,自定义泛型类Result的创建与使用,展示如何根据不同类型进行数据操作,强调泛型在逻辑上视为不同类型的特性。
1687

被折叠的 条评论
为什么被折叠?



