Java中Optional使用注意事项
前言 之前遇到过使用Optional之后带来的隐含bug,现在强调记录一下不好的用法,防止错用。 Optional不能序列化,不能作为类的字段(field) 这点尤为重要,即类要纯粹。如果是POJO就原始类型就可以了,如果是领域对象,则更不应该使用Optional作为field。 Optional不能作为方法参数 另一种不太适合使用Optional的情况是将该类型作为方法或者构造函数的参数,这将导致不必要的代码复杂化。 User user = new User("john@gmail.com", "1234", Optional.empty()); 相反,使用方法重载(method overloading)来处理非强制性参数要方便得多。 Optional和steam组合更有益处 级联调用是危险的,很容易产生空指针。比如 String isocode = user.getAddress().getCountry().getIsocode().toUpperCase(); 在传统做法里, if (user != null) { Address address = user.getAddre...