没有实现的java接口(interface)

标签 java interface javafx-2

我最近在探索 javafx 时遇到了下面这段代码,我看到 ObservableList 是一个接口(interface)并且没有它的实现,你怎么能使用它的变量?很明显我在这里遗漏了一些东西,任何人都可以指出我正确的方向吗?

    List list = new ArrayList();

    ObservableList observableList = FXCollections.observableList(list);
    observableList.addListener(new ListChangeListener() {
        @Override
        public void onChanged(ListChangeListener.Change change) {
            System.out.println("Detected a change! ");
        }
    });

最佳答案

FXCollections.observableList() 方法返回实现该接口(interface)的类的实例。你在这里看不到这个类的名字,但你不需要看到它(或者实际上,甚至不需要知道它是什么)。这是面向对象编程的多态性的全部要点:你、客户端,只与接口(interface)打交道;创建实现它的实际类或类集是其他人的工作。如果你得到这一点,那么你就掌握了一切。

关于没有实现的java接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805692/

相关文章:

JavaFX 图像未在舞台上显示

java - 同步方法调用另一个调用 wait() 的同步方法

c# - 如何在 C# 中使用通用接口(interface)从子对象引用父对象?

javafx-2 - JavaFX 中 JComponent 的替代方案

c# - "no implicit reference conversion"即使定义了转换

oop - 接口(interface)与抽象类或一般的多态性

放大JavaFx : ScrollEvent is consumed when content size exceeds ScrollPane viewport

java - 同步缓存项目

java - 向 Servlet 中抛出异常

java - Jsoup tagName() 给出错误的标签