Refactorisation hiérarchies d'héritage fou d'objets de valeur - Comment obtenir une liste de tous les champs et les types?

StackOverflow https://stackoverflow.com/questions/4349606

Question

Donc, fondamentalement, je dois régler manuellement une hiérarchie d'héritage. Je voudrais que les classes d'être parfait, pas de champs supplémentaires, et ils sont juste DTO. Cependant, il est vraiment facile de se perdre et ajouter des champs en double, et il est vraiment difficile de voir si ce que je suis à la recherche est déjà là. Quelque chose que je voudrais vraiment avoir un moyen d'énumérer tous les domaines au sein d'une classe, y compris les champs hérités (privé aussi). Comme une vue sur le terrain uniquement aplaties sans accesseurs qui encombrent tout le haut.

Je l'ai trouvé un moyen de le montrer dans NetBeans avec clic droit / membres de fichiers, mais je ne peux pas le copier-coller et enregistrer dans un fichier texte ou quoi que ce soit.

En gros, juste ces colonnes:

Name     Type            Superclass
id       int  
theDate  java.util.Date  com.something.AbstractDTO
...

Quelqu'un sait comment le faire, ou une meilleure façon de faire ce que je suis en train de faire?

Était-ce utile?

La solution

Si aucun outil de pré-existant peut être trouvé il ne devrait pas être difficile à écrire quelque chose qui utilise la réflexion pour extraire ces informations de vos classes de DTO. Vous auriez besoin de recompiler et exécuter re-programme pour les mises à jour, mais qui est mieux que rien.

Autres conseils

Vous pouvez utiliser "hiérarchie View" Eclipse. Lorsque vous cliquez sur une classe que vous obtenez ses membres. En cliquant sur l'icône « Afficher tous les membres hérités » vous donne une vue triée par type de membre (champs statiques, les méthodes statiques, les champs d'instance, etc.). Vous pouvez sélectionner les champs d'instance de la manière habituelle, clic droit et « copier le nom qualifié ». Vous aurez quelque chose comme ça, qui comprend où le membre a été défini.

nz.ac.vuw.ecs.kcassell.cluster.MatrixBasedAgglomerativeClusterer.distanceMatrix
nz.ac.vuw.ecs.kcassell.cluster.MatrixBasedAgglomerativeClusterer.originalMatrix
nz.ac.vuw.ecs.kcassell.cluster.DisjointClusterer.originalMatrix
nz.ac.vuw.ecs.kcassell.cluster.DisjointClusterer.originalSeed1
nz.ac.vuw.ecs.kcassell.cluster.DisjointClusterer.originalSeed2
nz.ac.vuw.ecs.kcassell.cluster.MatrixBasedAgglomerativeClusterer.previousIteration
...

Dans cet exemple, « originalMatrix » est défini de multiplication. (Il est encore plus facile à voir dans la vue hiérarchique.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top