我有一个方法可以返回列表

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()方法,并在您的代码中使用它(上面添加了)

09-09 20:41
查看更多