如何将变量类型定义为接口(interface):
List<BigDecimal> filter = new ArrayList<BigDecimal>();
我们不应该按类或原始数据类型定义变量而不是接口(interface),如下所示:
ArrayList<BigDecimal> filter = new ArrayList<BigDecimal>();
它如何接受接口(interface)变量定义?
最佳答案
一般来说,首选对接口(interface)进行编码(您的第一个示例,使用接口(interface)而不是类声明变量)。这样,如果您需要更改为不同的实现,那么这样做很简单 - 您只需更改 new
到其他东西,并且没有其他需要改变,因为您编码到接口(interface)。
它起作用的原因是 ArrayList<BigDecimal>
实现List<BigDecimal>
,因此与其赋值兼容。这意味着声明为 List<BigDecimal>
的变量允许拥有 ArrayList<BigDecimal>
类型的引用分配给它。这是该语言的设计特征。这是接口(interface)(实际上是一般的 OOP)在 Java 中工作方式的基础。
关于java - JAVA中将接口(interface)定义为变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177003/