J'essayais depuis des jours de savoir si c'est possible, j'ai échoué mais peut-être que c'est possible (je pense que cela devrait être possible).Générer des composants de l'interface utilisateur
Disons que nous avons quelques éléments de l'interface utilisateur similaires avec des hiérarchies Swing + nous allons utiliser les interfaces couramment Fluent Interfaces:
public abstract class Component {
...
public abstract Component setName(String name);
public abstract String getName();
...
}
public abstract class Panel extends Component {
....
}
public abstract class TitledPanel extends Panel {
....
public abstract TitledPanel setTitle(String title);
public abstract String getTitle();
}
Est-il possible, en utilisant générique pour pouvoir écrire quelque chose comme ça? Set12 doit renvoyer un TitledPanel au lieu de Component pour pouvoir lier ces appels.
Ceci est juste un exemple simple, mais l'idée est une fois que j'ai un objet de type T tout appel à une méthode couramment d'un superclasse pour retourner le type T.
Edit 1: J'oublié d'exclure la partie en remplaçant les méthodes et en renvoyant un type covariant :) Je veux juste des génériques, si c'est possible en effet.
« Tout d'abord, je suggère d'utiliser uniquement des méthodes ensemble, et laisser tomber le jeu. » - n'a pas compris cette partie. –
Quelle partie? Je suggère de ne pas avoir de méthodes - elles sont inutiles. Je suggère également de ne pas utiliser le préfixe 'set' parce qu'il est moche et inutile. –
Vous devez disposer de méthodes pour avoir accès à ces membres. Eh bien, définir et obtenir un sens et c'est aussi une convention de nommage de Sun: http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html Pas que Sun n'a pas de règles brisées, mais ces règles simples ont du sens, au moins pour moi. –