(HE_EQUALS_USE_HASHCODE) 一个类覆写了 equals 方法,没有覆写 hashCode 方法,使用 了 Object 对象的 hashCode 方法 29. HE: Class inherits equals() and uses Object.hashCode() (HE_INHERITS_EQUALS_USE_HASHCODE) 子类继承了父类的 equals 方法却使用了 Object 的 hashCode 方法 30. IC: Superclass uses subclass during initialization (IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION) 子类在父类未初始化之前使用父类对象实例 public class CircularClassInitialization { static class InnerClassSingleton extends CircularClassInitialization { static InnerClassSingleton singleton = new InnerClassSingleton(); }
static CircularClassInitialization foo = InnerClassSingleton.singleton; }
31. IMSE: Dubious catching of IllegalMonitorStateException (IMSE_DONT_CATCH_IMSE) 捕捉违法的监控状态异常,例如当没有获取到对象锁时使用 其 wait 和 notify 方法 32. ISC: Needless instantiation of class that only supplies static methods (ISC_INSTANTIATE_STATIC_CLASS)