为什么 IDEA 自带的 equals & hashCode generate 不好
2014-11-24 09:25
344 查看
多个member的 java bean,生成的 equals 代码基本没法读。
有个 plugin 用 spring commons 生成代码,spring commons 的 EqualsBuilder 的问题在于……confluence interface。
不知什么时候开始出现了一批迷信confluence interface的人,各种 method call chain,debug的时候设置个断点都没法弄。
尤其是 equals 这种方法,一旦 return false,你经常希望知道具体哪个member not equals,而如果里面是用了 EqualsBuilder …… 见鬼。
还有一个 Equals and HashCode Generate Deluxe 的 plugin,问题也大概差不多,用了一串的 &&,————好的代码要考虑debug时的断点,和exception里清楚明白的行号。
另外如果是可继承的类,这些 generated code 里面那些 if (o.getClass() == xxx) 统统都是错的,——这年头还不读《Effective Java》的都该吊起来烧死。
官方支持 equals 和 hashCode template 自定义以前,IDEA 需要一个更好的 plugin。
有个 plugin 用 spring commons 生成代码,spring commons 的 EqualsBuilder 的问题在于……confluence interface。
不知什么时候开始出现了一批迷信confluence interface的人,各种 method call chain,debug的时候设置个断点都没法弄。
尤其是 equals 这种方法,一旦 return false,你经常希望知道具体哪个member not equals,而如果里面是用了 EqualsBuilder …… 见鬼。
还有一个 Equals and HashCode Generate Deluxe 的 plugin,问题也大概差不多,用了一串的 &&,————好的代码要考虑debug时的断点,和exception里清楚明白的行号。
另外如果是可继承的类,这些 generated code 里面那些 if (o.getClass() == xxx) 统统都是错的,——这年头还不读《Effective Java》的都该吊起来烧死。
官方支持 equals 和 hashCode template 自定义以前,IDEA 需要一个更好的 plugin。
相关文章推荐
- hashcode & equals
- hashcode & equals
- hashcode&equals续
- Equals 和 hashcode 经典代码
- Java 中hashCode & Equals方法
- Lombok(1.14.8) - @Getter, @Setter, @ToString, @EqualsAndHashCode & @Data
- What's the effect of hashCode() & equals() when adding object to List/Set/Map
- hashcode & equals通俗理解
- equals&&hashCode&&toString函数
- 谈谈hashCode&equals&HashMap
- 基础加强____【哈希表数据结构】【深入理解hashcode & equals】
- java 中的hashcode&equals
- 将数据库操作类写在app_Code里面有什么不好?为什么不用三层架构?
- 比较Java中"hashCode" "equals" "==" "System.identityhashcode"
- Working with hashCode and equals methods in java
- Java里为什么hascode 和 equals方法 总是成对出现?
- Java equals() and hashCode() Contract
- HashCode and Equals method in Java object – A pragmatic concept
- equals and hashcode method in hibernate framework
- e.hash == hash && ( (k = e.key) == key || (key != null && key.equals(k)) )