java - 返回 unmodifiableList 是否可以接受,还是应该返回数组?

标签 java oop collections api-design

我有方法List<Foo> getFoos ()从远程服务器获取数据并返回。

当然,用户不应该更改列表的项目数,因为他会得到与服务器上的数据不同步的数据(如果他想要更改项目数,他有特殊的方法,如 addFoo () )。

第一种方法是返回数组并将方法的签名更改为 Foo[] getFoos () .但它在java中更常见,用户操作集合更方便,所以我将签名更改为List<Foo> getFoos () .这个方法总是返回

Collections.unmodifiableList (originalList)

因此,当用户尝试更改列表时,他会得到 RuntimeException。

类似案例中的api设计有什么建议吗?

最佳答案

Collections.unmodifiableList完全可以接受并且应该更快(无需创建数组)。

编辑 - 在 API 设计方面,您应该明确您的 JavaDoc!使用方法而不阅读其文档的人应该得到惊喜:p

关于java - 返回 unmodifiableList 是否可以接受,还是应该返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186045/

相关文章:

java - 在maven中,如果我创建一个子包,主包是如何引用的?

java - Bazel:带有 sqlite.db 的 Java 资源文件夹

php - 使用 PHP 面向对象编程简单更新 MySQL

hibernate - Hibernate HQL和Grails-如何比较集合?

java - 使用 HashMap 时,值和键在迭代时是否保证顺序相同?

Java-如果在java中使用Map集合如何优化else

Java Server Pages - 插入 MySql 时的排序规则?

java - 我应该使用哪种设计模式?

OOP 与面向类编程

javascript - 我想在 Loopback 中为此 JSON 数据创建一个模型