Han*_*etz 0 java coding-style list
这可能有点主观,但我经常发现,看看其他开发者如何处理某些日常细节会非常有趣.
我有这样的代码:
class A {
public List<SomeType> getOneSet() { ... }
public List<SomeType> getAnotherSet() { ... }
}
class B {
public static OtherType convert(SomeType input) { ... }
}
// ...
A a = new A();
List<OtherType> rgResults = new ArrayList<OtherType>();
Run Code Online (Sandbox Code Playgroud)
现在将遵循相当于两个相同的for循环,如下所示:
for (SomeType input : a.getOneSet()) {
rgResults.add(B.convert(input);
}
for (SomeType input : a.getAnotherSet()) {
rgResults.add(B.convert(input);
}
Run Code Online (Sandbox Code Playgroud)
这有效,但它当然是代码重复.如果循环中的代码变得稍微复杂或者有两个以上的集合,那么这是不可接受的.
因此,我将循环放在一个以源和目标列表作为参数的函数中,但很想知道是否还有其他方法.特别是那些在你从不在多个地方调用函数时可能更合适的东西.
例如,我会喜欢以下,但由于我不能使用泛型数组,因此无效:
for (List<SomeType> rgSrc : new List<SomeType>[] { a.getOneSet(), a.getAnotherSet() } ) {
for (SomeType src : rgSrc) {
rgResults.add(B.convert(src));
}
}
Run Code Online (Sandbox Code Playgroud)