【发布时间】:2021-08-20 18:14:52
【问题描述】:
我有一个带有列表和两个变量(id 和 name)的类 Data。我用列表值替换变量。第一次出现在列表中的是id 和name 的新值。删除id 和name 后,请求对象将只包含dataList。但问题是该变量正在许多地方使用。我正在考虑在 Request 对象中创建 id 和 name 属性的设置器。
我创建了 getter,但不确定如何创建 setter,以便将项目添加到同一对象的列表中。此外,如何单独覆盖这两个字段的构建器。假设请求对象也很大。
班级Request
@Builder
@Getter
public class Request {
private String id; //need to removed
private String name; //need to removed
private List<Data> dataList;
public String getId() {
return (dataList != null) ? dataList.get(0).getId() : null;
}
public String getName() {
return (dataList != null) ? dataList.get(0).getName() : null;
}
}
班级Data:
public class Data {
private String id;
private String name;
}
当有人调用 setId 或 setName 时,dataList 中索引 0 处的项应该被更新。
我如何为 builder 做同样的事情?
【问题讨论】:
-
你是说当有人调用
setId或setName时,那么dataList中索引0处的项目应该更新? -
@GauthamM 是的!!
-
但问题是很多地方都在使用这个变量。 - 哪个变量在很多地方使用? 删除 id 和名称后 - 您可能想要删除
Data实例,而不是id和name本身。目前尚不清楚问题是什么以及您想要实现什么.. -
请求对象的 ID 和名称在许多地方都被使用。我想让它使用 dataList
-
那么为什么不创建他们的副本呢?此外,如果您担心从列表中删除
Data实例,它不会取消引用(删除)id和name,因为后者存在于单独的对象中。目前还不清楚你想达到什么目标..
标签: java lombok getter builder setter