java - Java中如何获取返回类型为List接口(interface)的对象?

标签 java list arraylist interface

我正在使用开源代码,其中一个 API 返回 List<String>Listinterface 。我知道他们这样设计是为了让 API 更加通用,但是我该如何使用它呢?我只想得到结果。如果我尝试这样的事情:

ArrayList<String> list = (ArrayList<String>) ... 

我得到一个ArrayList cannot be cast to java.util.ArrayList错误。

最佳答案

为什么不使用界面?

List list = (..your method call..)

如果 API 返回的列表是 List 接口(interface)的不同实现(即不是 ArrayList),则无法将其转换为 ArrayList。您可以构造一个新的 ArrayList 并使用从 API 获取的 List 对其进行初始化,但我不明白这一点。

您正在使用的API正在返回List接口(interface)的一些实现。您无需关心他们当前正在使用哪种实现。这就是使用接口(interface)的要点 - 他们明天可以更改实现,但由于 API 返回 List 接口(interface)类型,因此使用该 API 的任何代码都不必更改。

关于java - Java中如何获取返回类型为List接口(interface)的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340729/

相关文章:

java - 带 Swing 组件的 GUI 布局 JAVA

java - 将 jetty 7 更新为 jetty 8 : java. lang.NoClassDefFoundError: javax/servlet/FilterRegistration

python - 从单独的列表创建字典列表

r - 与列表元素的所有可能组合相交

python - 保存/加载字符串列表和文件的最佳方式将同时由两个 Python 脚本操作

java - 如何绘制无限数量的 Sprite ?

java - 排除由 CDI 拦截器调用的特定方法

Java:从文件扫描到数组列表,然后最小/最大/平均值/标准偏差

java - Android按属性排序arraylist

java - GWT 中的正则表达式以匹配 URL