1、对于 boolean 类型的属性,eclipse自动生成的getter前缀时is,而Enjoy总是找get开始的
2、对于属性名是^[a-z]{1}[A-Z]{1}[a-zA-Z0-9\$]*$ 这种正则模式,例如:eBook 生成的getter是geteBook 而不是 getEBook
obj.geteBook()
obj.isXxx()
enjoy 这样设计的原因是为了提升性能,如果设计成支持 isXxx() 方法的 obj.xxx 形式取值,那么就要在 getXxx() 方法找不到时再找一次 isXxx() 方法,这个会显著拉低性能
但凡是考虑性能的框架都会考虑这里,例如 fastjson 就不支持 isXxx() 来生成 json
此外, eclipse 生成器会为 eBook 属性生成 geteBook() 方法,这个是 bug,需要你手动改掉,如果不改的话,可以在 enjoy 直接调用这个方法: obj.geteBook()
obj.isXxx 以及 geteBook 这类情况是很少发生的,为照顾少数场景而拉低整体性能是不值得的。让这类场景去使用 obj.isXxx()、obj.geteBook() 来实现功能是权衡后的结果
fastjson 甚至阿里巴巴的 Java 规范手册上压根就直接规定 boolean 属性的 getter 方法不能是 isXxx(), 必须是 getXxx()
这是一个好问题,点赞