我们目前正在使用java
开发一个项目,我们公开了REST API
正如我们正在研究OO语言并以json
格式导出内容,
我们搜索了一个库,以支持将对象转换为json
并支持版本控制。
我们决定使用gson
,因为它为版本控制提供了简单的注释。
我们面临的问题是API中的某个字段(让我们说板块)被删除而另一个字段(比如驱动程序)被删除,它们属于同一类型。 我们如何在这个坐标中构建构造函数,其中签名是相同的?
我想出的解决方案如下:
汽车:
...
@Since(1)
@Until(2)
private String plate;
@Since(2)
private String driver;
// v1
public Car(String plate){
this(plate, null);
}
// v2
public Car(String plate, String driver){
this.plate = plate;
this.driver = driver;
}
...
为了创建v2 Car
,我只需要驱动程序字段,我将按如下方式执行:
Car car = new Car(null, driver);
我不是传递null的粉丝(特别是在ctors中),有没有更优雅的方式来做这个?