我是Java新手,我看过像这样的ArrayList示例。
listing = new ArrayList<Lot>();
我知道如果我想创建一个空数组列表。然后我将使用ArrayList()
但我不明白“<Lot>
”与“ArrayList
”之间的()
是什么。
有人可以向我解释一下吗?
由于
答案 0 :(得分:4)
它被称为类型参数。它表示ArrayList
仅包含Lot
类型的对象
查看Generics的概念。
您将在此示例中使用此ArrayList<Lot>
:
// (a)Without Generics ....
List myIntList = new ArrayList(); // 1
myIntList.add(new Lot(0)); // 2
Lot x = (Lot) myIntList.iterator().next(); // 3
// (b)With Generics ....
List<Lot> myIntList = new ArrayList<Lot>(); // 1’
myIntList.add(new Lot(0)); // 2’
Lot x = myIntList.iterator().next(); // 3
上述两点需要注意,例如
e.g(b)
中,由于我们已经指定ArrayList
将只包含Lot类型in Line 3
的对象,因此我们无需将其强制转换为类型对象Lot。这是因为编译器已经知道它只有Lot类型的对象。 e.g (b)
将导致编译时错误。这是因为编译器已经识别出此List特定于包含仅Lot
类型的元素。这称为type checking
答案 1 :(得分:4)
这是Java Generics。 <Lot>
表示ArrayList将只包含Lot类型的对象。它很有用,因为编译器可以对ArrayList进行类型检查。
答案 2 :(得分:0)
It is an extension to Java's type system called, Generics
泛型允许您创建一个List
,其中包含Object
的特定子类型(或实现特定接口的一组特定Object
,而不是一个集合只保留普通Object
s。
答案 3 :(得分:0)
listing = new ArrayList<Lot>();
这一行只是说要在 ArrayList 中插入,更新,检索的对象类型属于 Lot 。 这就是java中的泛型 在从任何List中检索对象时,不需要使用泛型类型转换。