我是Java的初学者。经过长时间的尝试,我无法理解这些界限。
private ArrayList <Lot> lots;
lots = new ArrayList<Lot>();
有人可以描述在将类名传递给ArrayList<>
参数时如何工作吗?
答案 0 :(得分:1)
来自Here,
以下没有泛型的代码段需要强制转换:
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
当重写使用泛型时,代码不需要转换:
List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0); // no cast
答案 1 :(得分:1)
这些是generics,这是Java 5中引入的一项功能。
简而言之,这意味着lots
中的每个元素都是Lot
- 您无法向其添加Integer
或String
,并且每当get
Lot
1}}列表中的元素会得到lots.get(0).someMethodOfLot();
个实例,因此您可以执行以下操作:{{1}}。
答案 2 :(得分:1)
执行ArrayList <Lot> lots= new ArrayList<Lot>();
时
它只是意味着您正在创建一个ArrayList,它可以包含Lot
类型的Object。
如果您尝试将任何其他类型的元素添加到此列表中,它将为您提供编译时错误。它有助于在编译时检测错误并使您的代码安全。
此功能由泛型提供。现在问题是为什么我们需要泛型。
泛型的用途