是否有关于如何重写特定规则equals()与hashCode()在子类考虑超领域?知道有很多参数:超级字段是私有/公共的,有/无getter ...
例如,Netbeans生成的equals()&hashCode()将不考虑超级字段...和
new HomoSapiens("M", "80", "1.80", "Cammeron", "VeryHot").equals(
new HomoSapiens("F", "50", "1.50", "Cammeron", "VeryHot"))
Run Code Online (Sandbox Code Playgroud)
将返回true :(
public class Hominidae {
public String gender;
public String weight;
public String height;
public Hominidae(String gender, String weight, String height) {
this.gender = gender;
this.weight = weight;
this.height = height;
}
...
}
public class HomoSapiens extends Hominidae {
public String name;
public String faceBookNickname;
public HomoSapiens(String gender, String weight, String height,
String name, String …Run Code Online (Sandbox Code Playgroud) 多年来,我的代码充满了这样的评论:
//TODO : Add ...
...
/*
*TODO : Fix ...
*
*/
Run Code Online (Sandbox Code Playgroud)
现在我想创建我自己的@todojavadoc注释...但在此之前我想知道你们是否有更好的方法来管理你的todo编程的东西?
有没有更好的方法在java集合上拥有一个监听器,而不是将它包装在一个实现观察者模式的类中?
在多线程组件中使用非线程安全组件(Collection,API,...)...
component1:一个多线程套接字服务器,它将消息...发送给消息处理程序
component2:从服务器处理消息的非线程安全消息处理程序
添加线程安全部件(缓冲服务器和消息处理器之间),则缓冲器将接收的消息中的多线程从服务器方式,并在它们发送相同的顺序对消息处理程序在一个单独的线程方式.
有更好的解决方案吗?适当的设计模式可能是代理还是管道?
我们可以在实现接口时有一个" 不覆盖具体方法...... "编译时错误吗?
一个更明确的例子:
我构建了一个包含接口的框架.要使用框架,开发人员需要实现一些接口.但如果他们不覆盖equals(Object object)和hashCode() Object方法,内部API逻辑将被打破!
javadoc中提到的所有内容,但我希望在没有覆盖某些混凝土方法的情况下实现接口时出现编译时错误或运行时异常.
java ×4
overriding ×2
collections ×1
equals ×1
hashcode ×1
inheritance ×1
interface ×1
javadoc ×1
listener ×1
oop ×1