Java 8 默认方法接口覆盖对象等于方法
Java 8 default method interface override Object equals method
public interface Table<T> {
@Overrride
default boolean equals(Object other) {
//do something and return true/false
}
}
为什么上面的代码会出现"java: default method equals in interface Table overrides a member of java.lang.Object"的编译错误?我们不能使用接口默认方法覆盖 hashCode 和 equals 方法吗,大概我在同一个接口中有方法来确定实现这个接口的对象是否相等?
没有。 类 with implementations always win over default methods, so having a default hashCode
or equals
can never be invoked 因此被禁止。
public interface Table<T> {
@Overrride
default boolean equals(Object other) {
//do something and return true/false
}
}
为什么上面的代码会出现"java: default method equals in interface Table overrides a member of java.lang.Object"的编译错误?我们不能使用接口默认方法覆盖 hashCode 和 equals 方法吗,大概我在同一个接口中有方法来确定实现这个接口的对象是否相等?
没有。 类 with implementations always win over default methods, so having a default hashCode
or equals
can never be invoked 因此被禁止。