1. 程式人生 > >為什麼 IDEA 自帶的 equals & hashCode generate 不好

為什麼 IDEA 自帶的 equals & hashCode generate 不好

多個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。