Java仅获取某些对象字段

时间:2019-02-18 15:38:27

标签: java pojo

我有一个看起来像这样的POJO:

hello

public class Task { private TaskData taskData; String id; private int status; private int success; private int error; } class TaskData { transient LinkedList<String> list0; transient LinkedList<String> list1; } 中的列表可能很大(超过100mb)。

TaskData获取所有对象时,我不想包含/加载Map<String, Task> tasksMap = new HashMap()字段。我该如何实现?

P.S。 它与序列化无关。

更新: 通过“获取所有对象”,我的意思是,例如:

TaskData

2 个答案:

答案 0 :(得分:1)

为该字段提供默认值null,然后稍后使用setter方法更新该值。

public class Task {
    private TaskData taskData;

    String id;
    private int status;
    private int success;
    private int error;
}

class TaskData {
    transient LinkedList<String> list0 = null;
    transient LinkedList<String> list1 = null;

    public void setList0(LinkedList<String> list){
        list0 = list;
    }

    public void setList1(LinkedList<String> list){
        list1 = list;
    }
}

答案 1 :(得分:0)

我认为另一种方法是创建一个浅表复制方法,排除不需要的字段,并在填充Map时使用它,例如:

  public Task shallowCopy() {
    Task newTask = new Task();
    newTask.id = id;
    newTask.status = status;
    ...
    return newTask;
  }