7
votes

Extraction de la classe dans Eclipse

Cela doit être possible mais je ne peux tout simplement pas le comprendre dans Eclipse. J'ai xxx

et j'aimerais sélectionner la classe B et extraire dans son propre fichier afin que je reçois: xxx

et < / p> xxx

Comment puis-je faire cela dans Eclipse?


0 commentaires

5 Réponses :


1
votes

S'il n'y a pas de fonction spécifique, créez la nouvelle classe, copiez et collez le contenu de B, puis frappez Ctrl - shift - o sur les deux fichiers (ou au moins A.Java) pour nettoyer les importations devrait le faire.

Ce n'est pas une chose très commune à demander, et il est assez facile de faire manuellement.

EDIT: Vous pouvez également créer B.java, puis utiliser refactoring-> Déplacer sur B dans votre A.java pour le déplacer à B.Java. Il ne semblait pas copier sur les importations si je l'ai fait, alors que lorsque je me suis copié et collé manuellement, il attrapa les importations automatiquement.


1 commentaires

J'ai essayé de déplacer la classe B de A mais que cela n'a jamais travaillé, alors je l'ai laissé sortir de ma solution.



1
votes

Il n'y a pas de fonctionnalité que je connaisse. Vous devrez créer un fichier de choix Java et coller la classe dans le nouveau fichier. Corrigez les noms de déclaration des importations et des packages (si besoin d'être).


EDIT La meilleure façon de le faire: Créez simplement un fichier blank b.java , revenez à a.java , mettez en surbrillance b.java et clic droit et sélectionnez refacteur -> Déplacer ( alt + shift + v pour bref). Il déplacera la classe B à B.Java.

J'ai testé et ça marche. Vous devrez peut-être gérer les importations si nécessaire.


2 commentaires

Ca c'est drôle. Même si c'est assez simple à faire, vous penseriez qu'il y avait un raccourci pour cela. Semble être une opération commune.


est une opération commune. Par conséquent, l'idée le soutient depuis des âges.



6
votes

Dans mon éclipse (3.6 - Helios SR1), je souligne le nom de type ( B ), puis cliquez avec le bouton droit de la souris sur le menu contextuel, puis sélectionnez Refacteur > Type de déplacement vers un nouveau fichier ... .

Edit: il a été appelé «Type de membre Convertir au niveau supérieur» dans Verions antérieures, mais a été mis à jour pour fonctionner avec plus de deux types de membres:

http: // Télécharger. eclipse.org/eclipse/downloads/drop/r-3.6-201006080911/eclipse-news-part2.html

Type de déplacement vers un nouveau refactoring de fichier.

Le type d'élément convert au niveau supérieur Le refactoring a été renommé pour bouger Tapez au nouveau fichier et permet maintenant de type secondaire dans un fichier à déplacer dans son propre fichier. L'action continue de travailler pour les types de membres.


5 commentaires

Hmm, je me demande quel plugin fournit cela. Je n'ai pas cette option dans mon stock d'installation.


C'est drôle - je n'ai pas cette option. Quelle version de Eclipse avez-vous?


Il est appelé qu'en 3.6, il a eu un nom différent auparavant.


Suivi: semble être une nouvelle fonctionnalité d'Eclipse 3.6: télécharger.eclipse.org/eclipse/downloads/drop/r-3.6-201006080 911 / ...


@ZTYX, AH Oui, et il n'est pas seulement renommé de "Type de membre Déplacer le type de haut niveau ..." car dans votre cas, ce n'est pas un type de membre que vous essayez de bouger. C'est vraiment une nouvelle fonctionnalité.



12
votes

Voici comment vous le faites (fonctionne dans Eclipse 3.5):

  1. Sélectionnez votre code à extraire: P>

    /** ClassB.java */
    class B {
      ...
    }
    
  2. couper p> li>

  3. Cliquez avec le bouton droit de la souris sur le package dans lequel vous souhaitez le mettre P> LI>

  4. Sélectionnez Coller. (Alors organiser les importations em> si nécessaire.) P> li> ol> p>


3 commentaires

J'aime ça, il évite de devoir créer le fichier. Parce que Eclipse est si incompatible sur le moment où les importations sont correctement copiées. Si vous collez manuellement dans le fichier, toutes les importations suivront. Ici, ils ne sont pas copiés.


J'ai suggéré l'option Cut-Coller, mais je ne connaissais pas les étapes 3 et 4. Merci pour ça ....


Étrange qu'il n'a pas de commande rapide pour cela, comme Alt-Shift-M pour des méthodes. Mais bon, apprenez quelque chose de nouveau chaque jour. Merci!



0
votes

Positionnez le caret quelque part dans la classe B (peut-être qu'il doit être à l'intérieur du nom de la classe). Sélectionnez Refactor -> Déplacer le type au nouveau fichier .

(c'est le nom d'action dans Eclipse 3.6. Je crois que dans les versions antérieures, c'était Déplacer le type de membre au niveau supérieur )

référence:


0 commentaires