Also the point about IDEs auto generating toHashCode, toString, etc. If your class needs these methods, whether they were auto generated or not seems besides the point. The point the IDE is "compensating for lacking language features" doesn't make sense to me, the code is compensating, whether a human or IDE writes it.