Je dois souvent déboguer du code Java qui a été écrit pour qu'il y ait une interface et exactement une implémentation de cette interface.
Par exemple, il y aurait une interface Foo avec exactement une implémentation appelée FooImpl. Dans le code suivant, si je ctrl-clic sur doThings, il passe à Foo.Java alors que je souhaite réellement accéder à FooImpl.Java pour voir sa mise en oeuvre.
public void doStuff(Foo foo) {
foo.doThings();
}
Quand je me retrouve à l'interface, je dois utiliser ctrl-shift-r pour ouvrir FooImpl. Ce serait vraiment bien si je pouvais faire quelque chose de lécher ctrl-alt-clic sur doThings et me retrouver dans FooImpl.Java. S'il y a plusieurs implémentations dans l'espace de travail, alors peut-être qu'une fenêtre apparaîtra pour m'indiquer ce qu'elles sont.
Y at-il un plugin ou une fonction existante dans Eclipse qui fait cela? Je sais que je pourrais accéder à Foo.Java, puis obtenir la hiérarchie et accéder à l'implémentation, mais il faut plus de clics que nécessaire lorsqu'il existe exactement une implémentation d'une interface.
Le Implementors plugin fait à peu près exactement ce que vous demandez. S'il n'y a qu'une seule implémentation, elle l'ouvrira directement, sinon elle vous laissera choisir.
Dies funktioniert au mois, quand je mettais en œuvre vierhan sind.
Allez à Fenêtre> Préférences> Général> Editeurs> Editeurs de texte> - Hyperlinking, et décochez Open Declaration.
A partir de maintenant, quand tu tiens Ctrl en survolant un nom de méthode, la fenêtre contextuelle suivante s'affiche. Cliquez simplement sur le nom de la méthode et l'implémentation sera ouverte (ou une boîte Types mettant en œuvre XXX, s'il existe plusieurs implémentations).
Vous pourrez toujours utiliser la fonction Open Declaration en appuyant sur F3.
Dans Eclipse 3.5, lorsque vous passez la souris sur doThings
tout en maintenant la touche Ctrl enfoncée, une boîte de dialogue vous permet de cliquer sur deux options:
Il y a une capture d'écran comme deuxième section de la page Eclipse 3.5 New & Noteworthy pour JDT :