我希望Jackson用以下构造函数反序列化一个类:
public Clinic(String name, Address address)
反序列化第一个参数很容易。问题在于地址定义为:
public class Address {
private Address(Map<LocationType, String> components)
...
public static class Builder {
public Builder setCity(String value);
public Builder setCountry(String value);
public Address create();
}
}
并构造如下: new Address.Builder().setCity("foo").setCountry("bar").create();
有没有一种方法可以从Jackson那里获取键值对以自己构造地址?另外,是否有办法让Jackson本身使用Builder类?
只要您使用的是Jackson
2+,现在就会对此提供内置支持。
首先,您需要将此注释添加到您的Address
类中:
@JsonDeserialize(builder = Address.Builder.class)
然后,您需要将此注释添加到您的Builder
类中:
@JsonPOJOBuilder(buildMethodName = "create", withPrefix = "set")
如果您愿意重命名要构建的Builder的create方法,并且要以而不是set作为前缀,则可以跳过第二个注释。
完整示例:
@JsonDeserialize(builder = Address.Builder.class)
public class Address
{
private Address(Map<LocationType, String> components)
...
@JsonPOJOBuilder(buildMethodName = "create", withPrefix = "set")
public static class Builder
{
public Builder setCity(String value);
public Builder setCountry(String value);
public Address create();
}
}
介绍 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。 建造者模式可以将一个复杂对象的构建与其表
本文向大家介绍JavaScript设计模式之建造者模式介绍,包括了JavaScript设计模式之建造者模式介绍的使用技巧和注意事项,需要的朋友参考一下 建造者模式说明 1. 将一个复杂对象的 构造 与它的表示相分离,使同样的创建过程可有不同的表示,这就叫做建造者模式。 2. 面向对象语言中的说明,主要角色: 1>. Builder 这个接口类,定义这个建造者[工人],统一的可操作的行为方式,它表示
本文向大家介绍Java设计模式之创建者模式简介,包括了Java设计模式之创建者模式简介的使用技巧和注意事项,需要的朋友参考一下 Java的创建者模式与工厂模式有点类似,不过关注点不同。工厂模式往往只关心你要的是什么,而不关心这个东西的具体细节是什么。相对而言创建模式则是关心这个东西的具体细节的创建。拿创建人物来说,我们关心的不仅是创建一个人物,还要关心他的性别,肤色和名字,则可以使用创建者模式。
在软件开发过程中,有时开发人员会花费大量时间来创建数据结构,域类,XML,GUI布局,输出流等。有时,用于创建这些特定需求的代码会导致重新生成相同的片段。很多地方的代码。 这就是Groovy构建者发挥作用的地方。 Groovy具有可用于创建标准对象和结构的构建器。 这些构建器节省了时间,因为开发人员不需要编写自己的代码来创建这些构建器。 在本章的内容中,我们将介绍groovy中可用的不同构建器。
主要内容:介绍,实现,Item.java,Packing.java,Wrapper.java,Bottle.java,Burger.java,ColdDrink.java,VegBurger.java,ChickenBurger.java,Coke.java,Pepsi.java,Meal.java,MealBuilder.java,BuilderPatternDemo.java,相关文章建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 介绍 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的