您总是在类中实现哪些方法和接口?
你总是重写equals()吗?如果你这样做,你也做hashcode()吗?的toString()?你是否习惯于实现Comparable接口?
我刚刚编写了一些代码,我需要实现compareTo()并覆盖equals()以使我的程序以理智的方式工作; 我现在开始看到各处使用这些的方法......
你们都在想什么?
除非我需要,否则我通常不提前实施.
如果我的类包含数据成员并且我打算将它存储在某个地方,我通常会实现equals,hashCode和可比较的.
但是,我发现我的大多数课程都没有这个问题,所以没有必要这样做.例如,如果您的类围绕其他对象而不是数据的功能,为什么要这么麻烦?如果您有一个实例或按层次结构组织(例如,GUI小部件或窗口),为什么要这么麻烦?
不要实现你不需要的东西,但总是要确保是否需要它们,因为Java通常不会警告你.
此外,请确保使用您的IDE或Apache commons之类的东西来生成这些功能.很少需要手动编码.
至于toString,我很少实现它,直到我发现自己调试并需要在Eclipse调试器中更好的表示(例如,而不是对象ID).我害怕隐式转换,在生成输出时从不使用toString.
(几乎)总是toString()
.
它通常有助于调试目的.