ssj*_*ssj 11 java database-design
我正在编写查询数据库以获取数据的代码.有些类由Lists 组成,但有时候列表或其他属性无法启动且它们的值是null,所以我需要编写list!=null || list.isEmpty或者attribute != null,在我可以使用该属性之前.
不幸的是,很容易忘记它,而且我真的认为每次操作属性时都这样做很难看.我将编写一些代码来解释它.
public class SpotVo {
private Double avg;
private String brief;
private ArrayList<HotelVo> hotels;
private int id;
private ArrayList<byte[]> images;
private AddressVo location;
private String name;
private ArrayList<RestaurantVo> restaurants;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这个类中有一些列表和其他属性,可以都是null空的,我可以做些什么来避免它吗?
答案取决于是否null具有特殊含义。例如,对于某个String字段,您的应用程序是否需要区分null和""?对于Collection-valued 字段是否需要区分null和 空集合对象?
如果答案是“否”,那么您可以编写“数据对象”类来将空值标准化为相应的“带内”值。您可以在 getter 或 setter 或构造函数中执行此操作,具体取决于对象从数据库中具体化的方式。
您可以做的其他几件事是:
更改数据库架构以使相应的列“不为空”。
如果您使用的是 ORM 或数据绑定机制,请尝试将其配置(通过注释或其他方式)使用“带内”值而不是null.
转弯的点null进""空数组或集合的是,你不需要治疗“带内”的值作为特殊情况......除非你的应用程序的业务逻辑特别要求这一点。
简而言之,如果您null系统地剔除这些值,则无需在业务逻辑中测试它们。
请注意,这种方法并不总是有效。令我烦恼的情况是从HTTPRequestservlet 中的对象获取参数:
应用程序可能必须处理 4 种不同的情况:
参数不存在
没有值/空值的参数存在
参数存在非空值
参数出现多次。
参数是从标准 API 中获取的,而不是从自定义类中获取的,该类可以根据 web 应用程序的要求对值进行规范化。
| 归档时间: |
|
| 查看次数: |
4986 次 |
| 最近记录: |