【发布时间】:2013-12-13 11:55:44
【问题描述】:
我有一个模型有 5 个字段,包括 getter 和 setter,比如 id、name、age、dob、city
服务类包含一个方法,该方法只能以数组的形式返回特定字段数据。就像我只想要所有人的姓名和年龄一样。
List<Object> getEmpDataAsList(List<Object> fields);
所以我的方法看起来像这样,它需要一个参数fields,其中包含需要返回的字段列表。因此,对于这种情况,我应该只将 name 和 age 发送到 fields 参数,我的 getEmpDataAsList 会检测到请求的字段并相应地构建一个返回数组。
我想知道最好的方法是什么。我是否应该将fields List 作为我目前也在做的字符串传递,例如:
List<String> fields = new ArrayList<>();
fields.add("name");
fields.add("age");
getEmpDataAsList(fields);
但我认为,这并不安全。如果我打算在某一天更改一个字段的名称,或者如果我从模型中删除一个字段怎么办,那么我需要在 3 个地方进行更改。我应该在模型类中创建一个枚举并使用枚举字段来创建相同的fields 数组并使用它吗?或者还有其他更好的方法吗?
【问题讨论】:
-
服务
getEmpDataAsList(List<Object>)是否已提供或允许更改? -
@Chris Ya 我已经完成了这个项目,我可以随时更改它。
标签: java design-patterns enums