J'ai appris récemment 3 nouvelles langues et je commence à les confondre. Je n'ai pas travaillé Java en faisant quelque chose de particulièrement complexe (en dehors d'Android) dans quelques années. Je n'arrive pas à me souvenir si cela est possible:Modification de la sémantique des méthodes de la sous-classe dans Java
Je sous-classe ArrayList principalement pour que je puisse garder l'arrayliste ordonné. J'essaye de surcharger la méthode add(object)
mais je veux qu'elle renvoie un int au lieu d'un booléen (l'emplacement de l'objet qui a été ajouté). Mais je reçois des erreurs sur le type de retour de ma méthode.
Est ce que je veux même possible dans la langue? Pouvez-vous avoir une méthode dans une sous-classe de retour quelque chose de différent de la méthode de la superclasse? Ou est-ce que j'essaie de faire quelque chose de stupide? Est-ce que cela brise l'idée de l'héritage is-a
? Devrais-je simplement encapsuler un arraylist au lieu de l'allonger?
Pour référence, une partie de ce que je suis en train de faire:
public class AuthorArray extends ArrayList \{
@Override
public int add(Author object) {
super.add(object);
Collections.sort(this, new SortByLastName());
return this.indexOf(object);
}
}
Je pense que l'utilisation d'un 'ArrayList' pas idéale pour cela. Essayez un 'SortedSet', par exemple: un' TreeSet'. – NullUserException