java - 为什么应该首选 Java 类的接口(interface)?

标签 java collections interface

PMD将举报以下违规行为:

ArrayList<Object> list = new ArrayList<Object>();

违规行为是“避免使用“ArrayList”等实现类型;而是使用接口(interface)”。

以下行将纠正违规行为:

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

为什么要使用后者配合List而不是ArrayList

最佳答案

在具体类型上使用接口(interface)是良好封装和松散耦合代码的关键。

在编写您自己的 API 时遵循这种做法甚至是一个好主意。如果这样做,您稍后会发现向代码添加单元测试(使用模拟技术)以及在将来需要时更改底层实现会更容易。

这是一个good article就这个主题而言。

希望对你有帮助!

关于java - 为什么应该首选 Java 类的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58393956/

相关文章:

java - 一次刷新多个 Realm 实例?

java - 为什么 ArrayList 有 "implements List"?

java - 将值从映射转换为集合

java:从接口(interface)的实现类调用一个类中变量的值

java - 需要一些帮助来理解注释-Spring注释

java - 使用 MVP 模式

interface - 如何在 Fortran 界面中使用用户定义类型

c# - 委托(delegate)不只是简写接口(interface)吗?

java - 使用 JDBC 运行 Drop Tablespace 命令时,操作系统中的数据文件未删除

java - 类型 安全警告