2010-08-30 2 views
6

Parfois, j'ai tendance à utiliser la saisie semi-automatique d'eclipse (3.5) pour les types internes anonymes. Pour une raison quelconque, eclipse met toujours fin-parenthèse et point-virgule dans le mauvais ordre. Un petit exemple:Eclipse 'Type interne anonyme' - saisie semi-automatique

button.addActionListener(new Act...) // <-- Pressing Autocomplete (strg+space) 

résultats dans:

button.addActionListener(new ActionListener() 
{ 

    @Override 
    public void actionPerformed(ActionEvent e) 
    { 
    // TODO Auto-generated method stub 

    } 
};) // <-- why? 

didnt a constaté que partout dans codingtemplates d'éclipse. Je ne peux pas encore passer à 3.6, même si je ne sais pas, si cela est déjà "fixe" (si cela est supposé être une erreur), puisque eclipse ne sait probablement pas, qu'il doit utiliser la parenthèse derrière la saisie semi-automatique. Devinez la manipulation qui est un peu compliquée, car il ne vérifiera pas quels caractères sont derrière la saisie semi-automatique, et donc il ne peut pas utiliser la parenthèse de fin? Corrigez-moi, si je me trompe.

Devinez J'ai juste une mauvaise journée (lundi commun!), C'est pourquoi il m'annule en ce moment, mais peut-être que quelqu'un a une idée de comment influencer ce comportement?

Greets, ymene

Répondre

4

Il semble fonctionner (en quelque sorte) dans Helios (3.6). Il ne met pas du tout le point-virgule.

+0

+1. Concur, ça n'arrive plus chez Helios, c'est peut-être pour ça que ça ne me dérange plus autant. :-) –

+0

une raison de plus pour enfin passer, merci pour cette info! – crusam

2

Devinez J'ai une mauvaise journée ( commun Mondays!), Ce qui est la raison pour laquelle il me annyoys en ce moment, mais peut-être quelqu'un a une idée d'influencer ce comportement ?

Génère un bogue avec Eclipse.

Ce comportement ne me dérange pas un peu, mais pas au point de faire un bug à ce sujet.

+0

même pour moi, mais comme il semble être fixé dans les hélios, ne vaut pas la peine d'essayer de toute façon! ;) – crusam

1

essayer cette place alors (il est de style probablement mieux quand même!):

ActionListener actionListener = new Act... 
button.addActionListener(actionListener); 

C'est ce que je pense qu'ils avaient probablement à l'esprit (comme dans ce cas, le point-virgule est utile). Cependant, si Helios corrige ce problème en omettant le point-virgule comme le suggère Skip Head, il semblerait qu'ils ont du mal à déterminer si vous écrivez entre crochets ou non - étant donné que votre code ne compile pas encore à ce stade.

+0

J'ai aussi pensé à cette solution, mais j'essaie normalement d'éviter les variables locales, si elles n'étaient pas vraiment nécessaires, sauf pour la lecture des propositions. Mais dans ce cas je pense qu'il se lit toujours bien, en l'ajoutant directement. – crusam

+0

Sans trop entrer dans un débat sur le style, je vais juste sauvegarder mon affirmation en disant que l'utilisation de variables locales de cette manière vous permet de maintenir votre code plus facilement, de la même manière que d'utiliser toujours des accolades dans if ou looping Construit: ils sont prêts à utiliser si vous en avez besoin; ils sont faciles à lire, car chaque énoncé ne fait qu'une chose à la fois; et le compilateur optimisera (probablement) de la même manière de toute façon. – Robert

Questions connexes