【发布时间】:2016-11-23 01:51:41
【问题描述】:
正如标题所说......
我想构建一个包含四个字段变量的 POJO,并在某些运行时事件中创建此 POJO 的实例,并可能访问其中的两个或三个字段。
public class Category implements Serializable {
private String name;
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
假设我创建了一个新的 Category 对象,但我只想能够在运行时访问 name 字段。有没有我可以用来实现这一目标的设计模式?我考虑了策略模式并查看了构建器,但我仍然很困惑是否可以在 java 中做到这一点。
基本上,总体目标是从数据库中获取对象并将其作为 jax rs 中的 JSON 响应返回。但有时我不希望返回一个完整的对象,而只是说在某些运行时事件期间可以访问一半的对象。如果这似乎是一个愚蠢的问题,我深表歉意,但我知道我想做什么,但不知道最好的方法。
【问题讨论】:
-
对于大多数 ORM 工具,通常您要么引入整个对象,要么什么都不引入。那么是说您希望设置器的访问级别在运行时更改?
-
好的,既然您在谈论 JSON,您可能正在寻找 JSON 投影。我知道 Spring 和 Jackson 支持它们,但我对 JAX-RS 了解不多。
-
Projections 正是我所需要的......问题是我可以不使用弹簧而只使用杰克逊......
-
也许您可以动态地将 mixins 添加到包含 @JsonIgnore 某些字段的杰克逊。或者你只是写一个可配置的序列化器/反序列化器。