接口方法汇总Arrays vs util List

问题描述

| 我正在编写一个接口及其实现。该接口具有类似
doSomething(String[] strs,Integer[] ints,String msg);
我将参数声明为数组只是因为它会调用具有类似参数的外部接口。有人建议doSomething聚合应该是util List而不是数组。但是我找不到任何最佳实践来解释util List为何更可取的原因? 位置     

解决方法

列表具有更丰富的API和各种实现,因此更易于使用。因此,结果是它通常更具灵活性和可维护性。 乔什·布洛赫(Josh Bloch)的《有效Java》(Effective Java)强调了选择列表的另一个原因:“不变性”。 泛型是在编译时检查的,因此类型列表实际上比数组捕获更多的错误:
// Fails at runtime!
Object[] objectArray = new Long[1];
objectArray[0] = \"I don\'t fit in\"; // Throws ArrayStoreException
// Won\'t compile!
List<Object> ol = new ArrayList<Long>(); // Incompatible types
ol.add(\"I don\'t fit in\");
因此,在某些情况下,使用列表而不是数组实际上更安全。 不仅限于此,但它开始变得难以解释。请参阅指向有效Java ch 5的相关部分的链接:http://java.sun.com/docs/books/effective/generics.pdf 高温超导     ,基本上,列表是抽象类型,它需要由其任何家族成员(如ArrayList等)再次实现。因此,在性能方面,使用数组和列表没有太大区别,两者是相同的。仅在可维护性方面,我们使用List接口,然后根据需要可以在以后的任何List接口系列中实现它。list还可以在数组上提供灵活的操作。     ,这属于可维护性。您会发现使用为您准备的方法非常方便。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...