【发布时间】:2016-04-19 15:20:07
【问题描述】:
我希望能对一个我觉得非常困惑的话题进行澄清:ArrayList / List / ObservableList 之间的关系,这也与类和接口之间的差异有关。我已经阅读了有关该主题的多篇文章,并且我阅读的越多,我变得越困惑。
我确实知道:ArrayList 是一个类,这意味着您可以创建任意数量的 ArrayList 对象。 (这对我来说是个好消息,因为我喜欢和他们一起工作。)我也在学习 JavaFX,并且有很多 FX 对象以 ObservableLists 作为输入。但是 ObservableLists 是接口,而不是类,所以忘记创建任何 ObservableList 对象。起初,我假设 ArrayList 是 List 的子类,而 ObservableList 是 List 和任何 List 子类的接口。 …但进一步阅读,我发现 List 实际上是一个接口,而不是一个类,而 ArrayList 的父类是 AbstractList。所以这对我来说并不是很清楚。
另一个让我抓狂的地方:在另一个论坛帖子中,一位更聪明的编码员给了我这个 sn-p 的代码,以帮助我通过 ObservableList 接口访问我的 ArrayList:
List<myClass> myList = new ArrayList<myClass>();
虽然这种声明和初始化 ArrayList 的方法可以编译并且效果很好,但我只是不明白这里发生了什么。我认为 List 是一个接口,而不是一个类,那么如何创建一个 List 类型的 myList 对象呢?如果我不得不猜测,我会假设有一个名为 List 的接口和另一个名为 List 的单独类,并且由于这里的上下文,Java 假设我指的是该类。
关于一个附带问题,是否有推荐的网站或文本可供人们推荐我在此主题上查阅?我已经阅读了 Oracle 网站上的“Java in a Nutshell”、该网站上的不同帖子、“Java for Dummies”和“Java in a Nutshell Examples”,但还没有说明。非常感谢任何有关理解该主题的指导。
非常感谢! -RAO
【问题讨论】:
-
对不起,我在发帖前搜索了论坛,没有看到我认为是重复的帖子。
标签: java list arraylist interface observablelist