通常,明智的做法是不要在声明的返回类型中提交特定的实现,但是我们将不可变类型视为例外。有几种理由声明返回类型为
Immutable*:
- 他们记录您返回的是快照,而不是实时视图。
- 他们记录了调用者无法更改结果。
- 他们记录了插入顺序被保留(在您的用例中可能重要,也可能不重要)。
- 他们记录了该集合将不包含
null
。 - 有人可能想要
asList()
orreverse()
方法。 - 如果某人
copyOf()
希望分配给某个Immutable*
字段,则可以节省他的电话。(但是请注意,如果他确实包含了copyOf()
,即使您未声明返回类型,它也会使大多数不可变的输入短路。)
基本上,我只是从https://github.com/google/guava/wiki/TenThingsaboutImmutableCollections爬来爬去,您可能想要完整检查一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)