我有一个方法可以返回列表
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()
方法,并在您的代码中使用它(上面添加了)