Doublons possibles:
Efficiency of Java “Double Brace Initialization”?
Meaning of new Class(…){{…}} initialization idiomdouble {{}} question de syntaxe dans java
Supposons que je créé un JMenu Bar de la façon suivante:
JMenuItem saveMenuItem = new JMenuItem("Save")
{{
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
String location = GUI.Custom.QuickDialogs.selectFile(false);
try
{
PrintWriter pw = new PrintWriter(new File(location));
String text = textArea.getText();
pw.println(text);
pw.flush();
pw.close();
}
catch(Exception ex)
{
textArea.append("Could not save this debug output");
}
}
});
}};
JMenu optionsMenu = new JMenu("Options")
{{
add(saveMenuItem);
setVisible(true);
}};
private JMenuBar menuBar = new JMenuBar()
{{
add(optionsMenu);
setVisible(true);
}};
Est-ce un mauvais motif de conception pour créer des objets ay par opposition à simplement déclarer la variable, puis créer dans un constructeur ou quelque chose?
duplication possible de [Efficacité de Java "Initialisation Double Brace"?] (Http://stackoverflow.com/questions/924285/efficiency-of-java-double-brace-initialization) et/ou [Signification de double accolade idiome d'initialisation] (http://stackoverflow.com/questions/1372113/meaning-of-new-class-initialization-idiom) – BalusC
Je ne suis pas vraiment inquiet de l'efficacité, je suis plus inquiet à ce sujet en créant un cas de coin ou un autre problème que je manque. Je pensais juste qu'il y avait une raison pour laquelle je ne le vois pas trop souvent. – user489041