java - 为什么将数据库 'Apples' 提取到列表中而不是 ArrayList、Vector 或 LinkedList 中?

标签 java oop

我在文本中看到了这样的例子,但不确定他们为什么这样做。假设您从数据库中获取了一堆 Apple 对象:

List<Apple> appleList = (List<Apple>) db.getApples()

为什么你会转换到 List<Apple>而不是具体的列表类型之一(ArrayList、Vector 或 LinkedList)?

最佳答案

方法db.getApples()的用户不应该关心这是一个ArrayList、一个LinkedList等。实现细节。

在构造数据结构时,您应该只指定数据结构的具体类型。之后您应该引用适合您需要的界面。

这样您就可以轻松地更改数据结构的具体类型。

关于java - 为什么将数据库 'Apples' 提取到列表中而不是 ArrayList、Vector 或 LinkedList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217573/

相关文章:

java - 变量自增而不实际改变它

objective-c - 通过属性访问另一个类的变量

java - 在 java 中生成 SQL 字符串的好方法?

java - 如果 java Regex 中的常量值与该 Regex 匹配,则将其替换为其他值

java - 求一串由运算符分隔的数字的总和

java - 如何在 linux/unix 中从本地服务器上以当前日期进行文件备份?

c# - 为什么在C#中调用Grand parent虚函数

java - 我正在尝试比较 For 循环内的两个数组

java - 调用父方法并仍然保留当前变量

oop - 在 __indexed 时使表表现得像值的优雅方式?