最近、Spring Security で開発中に問題が発生しました。GrantedAuthority次のシグネチャを持つインターフェイスがあります。
public interface GrantedAuthority extends Serializable, Comparable
また、Java 1.5 以降では、インターフェースComparableは型パラメーターを取りますがT、これは Spring Security ライブラリーでは省略されています (明らかに、JVM 1.4 との互換性のために)。
だから私はGrantedAuthorityScalaで実装しようとしています。
class Role extends GrantedAuthority {
. . .
def compareTo(obj: Any): Int = obj match {
case (r: Role) => r.toString.compareTo(this.toString)
case _ => -1
}
}
コンパイルされません:
error: class Role needs to be abstract, since method compareTo in trait Comparable of type (T)Int is not defined
Scala でそのようなインターフェースを実装するにはどうすればよいですか?