Java 值对象属性应配置为默认值?
我使用value对象作为返回到android客户端的json 以致Java 值对象属性应配置为默认值?,java,design-patterns,nullpointerexception,null,Java,Design Patterns,Nullpointerexception,Null,我使用value对象作为返回到android客户端的json 以致 public class StationVO implements Serializable{ private static final long serialVersionUID = 1692896969987787366L; private String stationName; private Long stationID; private Double stationLng;
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;
}
因为他认为如果您使用object,json my可能为null,这可能会导致客户端应用程序错误,甚至
向下,但是我认为如果我使用double,nullexception可能会被隐藏,但是我找不到错误。
此外,如果我使用double,原始的null更改0,可能会导致数据不真实。
那么,如何避免返回null,并找到nullexceptin或其他查找异常的方法呢?您的问题几乎无法理解,因此我将仅给出一些建议: 除非应用程序需要
null
提供的明确含义,否则不要使用包装类型声明“标量”字段。为您的标量使用基元类型更简单、更有效。。。而且你不会遇到NPE的问题
在您的示例中,如果需要支持具有“未知”或“未指定”长/纬度坐标的桩号,则应仅对经度和纬度使用Double
。如果您只是想要一个默认值,那么将字段初始化为(数字)默认值;e、 g.0.0,0,0
如果确实需要将long/lat字段设置为null
,那么代码必须处理这个问题
有关调试NPE的详细示例,请阅读我对此问题的回答: