类java.util.ArrayList的方法:
public E set(int index, E anEntry)
public boolean add(E anEntry)
public E remove(int index).
这些方法的类型是什么?我的猜测太荒谬了,不能在这里发帖......
答案 0 :(得分:1)
List<String> list1 = new ArrayList<String>(); // E here is String
List<Integer> list2 = new ArrayList<Integer>(); // E in this case would be Integer
因此,当您声明或实例化ArrayList时,E表示类型。这对编译时类型检查非常有用。由于您无法添加除您创建的对象之外的任何其他类型的对象。
示例
List<String> list1 = new ArrayList<String>(); //if by mistake you try to add an
//Integer object, it will give you a compile time error.
list1.add(new Integer(2)); // compile time error
阅读:http://docs.oracle.com/javase/tutorial/java/generics/why.html
答案 1 :(得分:1)
如果有一个名为E
的类,它意味着完全相同的事情。
set
是一种采用int
(称为index
),E
(称为anEntry
)并返回另一个E
的方法
add
是一种采用E
(称为anEntry
)并返回boolean
的方法。
remove
是一种采用int
(称为index
)并返回E
的方法。
现在,在这种情况下,E
不是一个类 - 它是所谓的类型参数。如果您查看ArrayList
的第一行,您会看到类似的内容:
public class ArrayList<E>
将E
声明为ArrayList
的类型参数。当您谈论ArrayList<String>
时,E
表示String
。当您谈论ArrayList<Integer>
时,E
表示Integer
。通过这种方式,它们与普通方法参数类似 - 如果您有void x(int i)
,那么当您致电x(5)
时,i
包含5
。当您致电x(42)
时,i
包含42
。
答案 2 :(得分:0)
ArrayList<String>
,则返回String。答案 3 :(得分:0)
E
指的是泛型。
在面向对象编程中,泛型类型用于创建可以处理任何数据类型的类。这是一个简单的解释,虽然泛型是一个非常深入的主题,应该给你一个足够好的概述。