J'ai récemment rencontré un problème lors du développement de Spring Security. Il dispose d'une interface GrantedAuthority
avec la signature suivante:Implémentation d'interfaces Java non sécurisées
public interface GrantedAuthority extends Serializable, Comparable
Et comme pour Java 1.5 et plus tard, l'interface Comparable
prend un paramètre de type T
, qui est omis dans les bibliothèques de printemps de sécurité (évidemment, pour la compatibilité machine virtuelle Java 1.4). Donc, je suis en train d'implémenter GrantedAuthority
dans Scala.
class Role extends GrantedAuthority {
. . .
def compareTo(obj: Any): Int = obj match {
case (r: Role) => r.toString.compareTo(this.toString)
case _ => -1
}
}
Il ne compile pas:
error: class Role needs to be abstract, since method compareTo in trait Comparable of type (T)Int is not defined
Comment puis-je mettre en œuvre cette interface Scala?
Sons liés aux types bruts comme ceci: https://lampsvn.epfl.ch/trac/scala/ticket/2970#comment:3 – retronym
Merci, retronym. Donc, la réponse finale est, en fait, "wontfix"? – incarnate