值对象属性应该配置默认值?

时间:2014-11-21 09:58:12

标签: java design-patterns nullpointerexception null

我使用值对象作为返回android客户端的json 这样

public class StationVO implements Serializable{

    private static final long serialVersionUID = 1692896969987787366L;

    private String stationName;

    private Long stationID;

    private Double stationLng;

    private Double stationLat;  
}

但我的搭档让我改变为

public class StationVO implements Serializable{

    private static final long serialVersionUID = 1692896969987787366L;

    private String stationName="";

    private long stationID;

    private double stationLng;

    private double stationLat;
    }

因为他认为如果你使用对象,json我会有null,它甚至可能导致客户端应用程序错误 向下,但我想如果我使用双倍的nullexception可能被隐藏,但我无法找到错误。 此外,如果我使用double,原始的null更改0,可能会导致虚幻数据。 那么我怎么能避免返回null,我可以找到nullexceptin或其他人找到异常?

1 个答案:

答案 0 :(得分:0)

你的问题几乎无法理解,所以我会限制自己提出一些建议:

不要声明"标量"包装类型为的字段,除非您的应用程序需要null提供的不同含义。为标量使用原始类型更简单,更有效......并且您不会遇到NPE问题。

在您的示例中,如果您需要支持带有" unknown"的电台,则只应使用Double作为经度和纬度。或者"未指明"长/纬坐标。如果您只想拥有默认值,则将字段初始化为(数字)默认值;例如0.0, 0,0

如果您确实需要将长/纬度字段设为null,那么您的代码必须处理此问题。

有关调试NPE的详细示例,请阅读我对此问题的回答: