我想定义一个用于实现地图键的界面。该映射使用equals和hasCode来定位和比较键。我的密钥需要通过自定义计算覆盖它们。这就是我想要做的。使用复杂密钥非常重要。感谢
function addClass(el, className) {
var classes = el.className.match(/\S+/g) || [];
if (!hasClass(el, className)) {
classes.push(className);
}
el.className = classes.join(' ');
}
function hasClass(el, className) {
var re = new RegExp('(^|\\s+)' + className + '(\\s+|$)');
return re.test(el.className);
}
addClass(document.getElementById('dvText'), 'newStyle')
针对失败选民的编辑:我知道上述代码无效。我正在寻找实现接口的想法,以确保实现类使用泛型类型提供所需的方法。
答案 0 :(得分:2)
你想要的东西在Java中是不可能的。对象已经实现了equals
和hashCode
,因此每个子类也会自动执行。接口或抽象类无法重新实现它。假设对于该类正确实现了给定类的equals
和hashCode
。
如果您真的需要您的类来实现特定的比较操作,并且不想意外地使用现有的相等方法,您可以在您的接口上定义自己的比较函数,并且需要实现类来定义它们。已经在equals和hashCode方法中实现等式机制的类可以委托给现有的方法。