J'essaie de faire quelque chose comme ça, mais Java ne me laisse pas faire. Je soupçonne que je fais juste quelque chose de mal, mais je n'ai vraiment aucune idée de quoi. Il semble penser que T devrait être une classe, pas un type générique. Ma question est similaire à this one, mais pas exactement la même chose. Le point de tout ce que je veux avoir un type où je peux le comparer à d'autres choses du même sous-type sans être capable de les comparer à un autre objet PopulationMember.Pourquoi je ne peux pas le faire avec des interfaces?
3
A
Répondre
4
Essayez ceci:
public interface PopulationMember<T extends PopulationMember> extends Comparable<T> {
int compareTo(T o);
T merge(T o);
// Some other stuff
}
Lorsque vous remplissez un paramètre de type (comme vous le faites pour Comparable
), vous devez fournir une classe. Si vous ne voulez pas que ce soit une classe spécifique, vous pouvez paramétrer votre interface.
4
interface PopulationMember<T extends PopulationMember> extends Comparable<T> {
...
}
Vous spécifiez les limites génériques sur la classe actuelle (interface), pas sur celle étendue.
Questions connexes
- 1. Pourquoi je ne peux pas le faire en C++?
- 2. Python os.forkpty pourquoi je ne peux pas le faire fonctionner
- 3. Pourquoi je ne peux pas INSERT INTO?
- 4. Pourquoi je ne peux pas appeler packagename.modulename.foo()?
- 5. Pourquoi je ne peux pas l'utiliser?
- 6. pourquoi je ne peux pas enlever des éléments d'un tableau?
- 7. pourquoi ne peux pas je le fais dans js
- 8. Pourquoi je ne peux pas faire un "avec x as (...)" avec ADODB et Oracle?
- 9. C# - Je sais que je peux le faire dans LINQ, mais je ne peux pas le faire fonctionner
- 10. Pourquoi je ne peux pas charger le module webdav?
- 11. Déclaration PHP simple, je ne peux pas le faire fonctionner!
- 12. Je ne peux pas faire fonctionner le plugin questions_answers_foo
- 13. Pourquoi je ne peux pas faire fonctionner python3.1 avec posgresql 9.0
- 14. Pourquoi les interfaces ne sont pas [Serializable]?
- 15. Je ne peux pas travailler avec des gemmes plus récentes
- 16. Pourquoi je ne peux pas utiliser mon serveur apache?
- 17. Pourquoi je ne peux pas lier + dans clojure?
- 18. Pourquoi je ne peux pas déplacer cet élément?
- 19. Pourquoi je ne peux pas ajouter un JPanel à JFrame?
- 20. C# - Je ne peux pas faire référence à HttpPostedFileBase
- 21. jQuery draggable - Je ne peux pas faire glisser mon article
- 22. Je ne peux pas enregistrer cette valeur. Pourquoi?
- 23. Pourquoi je ne peux pas lancer une boucle en Javascript?
- 24. android pourquoi je ne peux pas récupérer un bitmap compressé?
- 25. Pourquoi les propriétés ne sont pas déclarables dans les interfaces
- 26. rendement: pourquoi je ne peux pas écrire: p test_method {} i.upcase
- 27. Pourquoi je ne peux pas instancier cette variable?
- 28. Zend_Feed_Rss - Je peux faire écho mais je ne peux rien faire d'autre?
- 29. Pourquoi je ne peux pas sortir de ce bloc Ruby?
- 30. pourquoi je ne peux pas installer sur mon pc MobiOne
Cela a fonctionné parfaitement; Merci! – Jeremy