Disons que j'ai une interface:Dans Eclipse, comment factoriser implémentation de l'interface anonyme Enum Singleton
public interface Foo{
String bar(int baz);
}
maintenant dans un code Java J'ai une implémentation anonyme de cette interface:
Foo foo = new Foo(){
public String bar(int baz){
return String.valueOf(baz);
}
};
est-il possible (dans Eclipse) pour factoriser ce au motif de singleton ENUM (effective Java, point 3), comme ceci:
// further up in the same Compilation Unit:
enum StandardFoo implements Foo{
INSTANCE{
public String bar(int baz){
return String.valueOf(baz);
}
}
}
// ...
Foo foo = StandardFoo.INSTANCE;
Ce refactoring est fastidieux à faire à la main et je le fais tout le temps. Y a-t-il un plugin qui fait ça? Ou un truc secret de JDT que je ne connais pas (j'utilise Indigo)?
BTW: Est-ce que l'idée ou NetBeans supportent ce refactoring?
Je suis un peu surpris que vous vous retrouviez à faire cela "tout le temps". Est-ce que Singleton est vraiment ce que tu veux ici, surtout si c'est seulement utilisé dans cette classe? –
@Mark a) une fois que c'est dans cette classe, je peux facilement la refactoriser en une classe supplémentaire si je le souhaite (mais idéalement une solution de refactoring me le demanderait, comme l'assistant "Nouvelle classe ..."). b) Il est logique de programmer de manière légèrement fonctionnelle, par ex. lors de l'utilisation des interfaces 'Function' et' Supplier' de Guava. –
Mais ces choses n'ont absolument pas besoin d'être un singleton. Pourquoi avez-vous besoin de l'appliquer? –