Supposons que nous ayons l'interface Java suivante:Comment étendre l'interface Java contenant des méthodes génériques dans Scala?
// Java
public interface Foo {
<T> T bar(Class<T> c);
}
Comment dois-je l'étendre à Scala? L'écriture
// Scala
class FooString extends Foo {
override def bar(c: Class[String]): String = "hello, world";
}
provoquera le compilateur de lancer "FooString de classe doit être abstraite, puisque la barre de méthode Foo trait de type [T ]
(classe [T]) T n'est pas défini."
Merci d'avance!
Mise à jour: La vilaine vérité est: J'ai mal compris les génériques en Java.
En tout cas, les solutions à mes malheurs sont présentées dans les réponses de Nicolas et de Walter, bien que je préfère mieux la réponse de Walter car elle est moins verbeuse.
Vous l'avez enfin compris! Je suis content que vous ayez compris votre erreur sur les génériques. De rien. – Nicolas