目录

空值处理

错误数据的定义

消灭错误数据

最终每个对象、每个函数都是可信任的。数据、对象在创建的时候保证合法,就无需每次使用前都判断一次了。世界清静了

参数约定

参数约定越严格越好,并且被调用函数需要尽量考虑到每种情况(如:List类型中的元素是否允许为空)

id: 没有任何修饰,默认一定不为空
type: Optional修饰,可能为null
value: 必须不为空,且里面不允许存在空元素。 (语言层面无法限制,推荐用注解说明,函数注释说明也可以)
返回值:Optional修饰,可能为null

public Optional<Integer> fun(Integer id,
                            Optional<Integer> type,
                            @AllNoneNull List<Integer> value) {

}