我有一个返回列表的方法,如
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 运算符。
最佳答案
您应该为该数据创建一个类并返回它的实例而不是 List
。
class SomeEntity {
long id;
String name;
public SomeEntity(long id, String name) {
this.id = id;
this.name = name;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
@Overrides
public String toString() {
return id + " " + name;
}
}
只需在您的代码中使用它:
public SomeEntity getSomeData(SomeBean sb) {
SomeEntity entity = new SomeEntity(sb.getId(), sb.getName());
return entity;
}
编辑:您可以重写该类的 toString()
方法并在您的代码中使用它(在上面添加)
关于java - 遍历异构列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490725/