<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">//默认创建</span>
Gson gson= new Gson();
//通过GsonBuilder创建
GsonBuilder builder=new GsonBuilder();
Gson gson=builder.create();
创建Gson对象可以使用new Gson对象,也可以使用GsonBuilder来创建Gson对象。
new Gson()创建的Gson对象是默认配置的Gson对象
使用GsonBuilder可以设置各种组件来创建特殊的Gson对象。
推荐使用GsonBuilder的create()方式来创建Gson对象
其中GsonBuilder创建Gson对象使用了设计模式建造者模式
GsonBuilder在配置Gson对象所需要的功能使用了链式的方式,有点像jquery链式调用来配置
最后调用create()来创建Gson,这些配置不需要按顺序调用
Gson gson = new GsonBuilder()
.registerTypeAdapter(Id.class, new IdTypeAdapter())
.enableComplexMapKeySerialization()
.serializeNulls()
.setDateFormat(DateFormat.LONG)
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.setPrettyPrinting()
.setVersion(1.0)
.create();
配置方法清单介绍:
建造者模式
产品:Gson
创建者:GsonBuilder 主要创建Gson对象
导演者:用户调用GsonBuilder
下面是我模拟的GsonBuilder创建Gson的创建者模式
仅供查考:
package com.zghw.gson;
public final class GsonBuilder {
private Object config1 = new Object();
private Object config2 = new Object();
private Object confign = new Object();
/**
* 创建者设置配置
*
* @param config1
* @return
*/
public GsonBuilder setConfig1(String config1) {
this.config1=config1;
System.out.println("设置配置1后返回,配置后的创建者");
return new GsonBuilder();
}
/**
* 创建者设置配置2
*
* @param config2
* @return
*/
public GsonBuilder setConfig2(String config2) {
this.config2=config2;
System.out.println("设置配置2后返回,配置后的创建者");
return new GsonBuilder();
}
/**
* 设置配置N
*
* @return
*/
public GsonBuilder setConfign() {
this.confign=config1;
System.out.println("设置配置n后返回配置后的创建者");
return new GsonBuilder();
}
public Gson create() {
System.out.println("组合各种配置进行产品的创建");
return new Gson(config1,config2,confign);
}
}
package com.zghw.gson;
public final class Gson {
public Gson() {
this(new Object(),new Object(),new Object());
}
Gson(Object config1, Object config2, Object config3) {
System.out.println("初始化所有配置!");
}
}