返回 unmodifiableList 是可以接受的,还是应该返回数组?
2022-09-02 09:56:24
我有从远程服务器获取数据并返回的方法。List<Foo> getFoos ()
当然,用户不应该更改列表中的项目数,因为他将获得与服务器上的数据不同步的数据(如果他想更改项目数,他有特殊的方法,例如)。addFoo ()
第一种方法是返回数组并将方法的签名更改为 。但它在java中更常见,并且更方便用户操作集合,因此我将签名更改为.此方法始终返回Foo[] getFoos ()
List<Foo> getFoos ()
Collections.unmodifiableList (originalList)
因此,当用户尝试更改列表时,他将获得 RuntimeException。
在类似情况下,是否有任何关于 API 设计的建议?