【发布时间】:2016-02-18 19:30:04
【问题描述】:
我有一个返回列表的方法,如
public List<Object> getSomeData(SomeBean sb) {
List<Object> data = Lists.newArrayList();
data.add(sb.getId()); // Id->long
data.add(sb.getName()); // name->String
.....
return data;
}
现在我必须遍历这个列表,每次都必须检查类型
for (int i = 0; i < data.size(); i++) {
if (data.get(i) instanceof String) {
//append
}
if (data.get(i) instanceof Long) {
//append
}
....
}
我需要在循环中追加列表的元素。 他们是否有更好的方法来实现这一点,可能不使用 instanceof 运算符。
【问题讨论】:
-
为什么要将名称和 ID 添加到同一个列表中?如果它们有关系,您可以使用一个类来定义该关系。如果他们没有 - 他们不应该在同一个名单上。
-
拥有这样的列表首先是问题所在。如果你必须混合不同类型的对象,那你就做错了。
标签: java loops data-structures collections