gpt4 book ai didi

java - 接口(interface)方法参数数组与 util 列表

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:12 27 4
gpt4 key购买 nike

我正在编写一个接口(interface)及其实现。该接口(interface)有一个类似

的方法
doSomething(String[] strs, Integer[] ints, String msg);

我将参数声明为数组只是因为它将调用具有类似参数的外部接口(interface)。有些人建议 doSomething 参数应该是 util List 而不是数组。但我找不到任何最佳实践来解释 util List 更可取的原因?

定位

最佳答案

列表更容易使用,因为它们具有更丰富的 API 和多种实现。因此,结果是它通常更加灵活和可维护。

Josh Bloch 的《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");

因此,在某些情况下,使用列表实际上比使用数组更安全。

事情远不止这些,但它开始变得难以解释。请参阅《Effective Java》第 5 章相关部分的链接:http://java.sun.com/docs/books/effective/generics.pdf

HTH

关于java - 接口(interface)方法参数数组与 util 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6092954/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com