作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要一个用于此枚举的类型化的、特定于实现的方法。编译器不喜欢 @Override
注释,但我不明白为什么。更重要的是,我怎样才能创建一个方法来比较这 2 个(类型化的)对象?
public enum BrokenToy{
BROKEN_ARROW {
@Override
public <T extends Set<Object>> double compare(
T prop1, T prop2) {
return 1.0;
}
};
public abstract <T> double compare(T prop1, T prop2);
}
理想的答案是我已经搞砸了符号,我需要更改一些语法,但是唉...... [悲伤的鸭子脸]。 This本来是应对当前挑战的另一种方式(哦,这行不通?多么有洞察力)。在方法中键入感觉不干净,所以让我们把它作为最后的手段。
最佳答案
abstract
compare
方法允许您使用任何引用类型作为类型参数。
您在 BROKEN_ARROW
中的实现没有。因此,编译器不允许这样做。它会破坏继承/多态性。
这就是您的程序无法编译的原因。
关于java - 使用泛型覆盖 Java 枚举中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611523/
我是一名优秀的程序员,十分优秀!