list方法在java中的工作原理

时间:2013-01-10 06:31:30

标签: java java-ee

List是java中的一个接口。它有一些方法。通常,接口是方法原型的规范。即接口由方法签名组成,只有接口中的方法不存在实现。

我怀疑如果List接口的方法在接口中没有任何实现,它们如何工作。

假设我有一个具有name属性,setter,getter方法的类Book。 我还有另一个类getBooks。

public class GetBooks{
    List<Book> list;
    public List<Book> getBooks(){
    return list;
    }
    //setter method..
}

我在运行时通过其他类将书籍发送到set方法。

我还有另一类UseBooks。

public class UseBooks{
    .....
    ....
    List<Book> list = new GetBooks().getBooks();
    list.add(new Book("aaa"));
}

我的问题是add方法是如何添加书籍的,即使它在接口List中,因为我的getBooks()返回List接口而不是Arraylist或其他一些实现类。

4 个答案:

答案 0 :(得分:3)

enter image description here

Java provides 3 concrete classes which implement the list interface
Vector
ArrayList
LinkedList

答案 1 :(得分:1)

java.util.ArrayListjava.util.LinkedListjava.util.VectorList接口的具体实现类。这个类包含所有方法实现。你可以使用喜欢 -

List<String> list = new ArrayList<String>();

答案 2 :(得分:1)

您将使用的List类型的唯一对象将是实际实现List的类型,例如ArrayListLinkedList等。它们将提供实现。

您无法实例化具有超类或接口的未实现抽象方法的类。

答案 3 :(得分:1)

“我怀疑List接口的方法如果在接口内部没有任何实现,如何工作” - (!!!!!!) 它将使用实现此接口的任何类实例的实现。所以取决于不同类实例中的实现。

您是否期待任何类型的详细示例?