将此功能添加到Java是否有意义:默认成员集合?

时间:2016-10-25 08:25:00

标签: java

我要迭代作为类成员的集合。语法当前是

for (Foo f: bar.getFoos()){...

我只是提议

 for (Foo f: bar){...

可以理解,如果Bar类中只有一个Foo集合可以调用getter,或者如果没有getter,则可以直接访问该集合(如果是公共的)。

2 个答案:

答案 0 :(得分:1)

我想这不是一个好主意,因为正如JonK建议的那样,你可以在类中添加第二个相同类型的集合,并且每一段引用该集合的代码都会以这种方式停止编译或引用到错误的集合(例如,如果它指的是第一次出现)。

编辑:我必须修改这个。如果添加了第二个集合,代码仍会引用第一个集合。我认为这实际上可能是一个功能,就像使用依赖单一方法的功能接口一样。

答案 1 :(得分:0)

我不认为这会产生对功能的需求。如果您要迭代Bar gettin Foo,请让Bar实施Iterable<Foo>并返回适当的Iterator<Foo>。不要忘记提供适当的.stream().parallelStream()功能,因为它们也可以变得方便。