Har*_*air 5 java validation lombok
声明私有变量并通过公共 getter/setter 方法(Java 中的封装原理)访问它,可以在 setter 方法中添加自定义验证。
例如:如果我setBalance()在 Class 的 setter 方法中放置负数验证Bank,我可以限制Bank. 这意味着可以限制字段中的意外更改。所以如果我使用 lombok,显然我不需要定义 getter/setter 方法。我可以做什么来合并上述验证。
这不会限制Java的数据封装特性的利用吗?
它不会破坏数据封装,而是使其更加方便:简单的 getter 和 setter 只是噪音。
如果您的代码需要除简单的获取或设置之外的其他内容,那么显然自动生成它们是没有意义的——但这是一个正交问题:您也无法手动完成。
您将受限访问与业务逻辑混为一谈。
无论如何:您也许能够使用 AOP 系统在自动生成的函数周围放置保护子句,但您需要强制执行处理器运行的顺序。在我看来,这会造成混乱并产生额外的认知开销:业务逻辑要么是显式的,要么是分层在显式代码之上的。