Je me demandais si le code suivant est sûr.Une variable statique essayant d'accéder à une autre variable statique
public class GUIBundle {
// The technique known as the initialization on demand holder idiom,
// is as lazy as possible.
// http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom
//private static class BundleHolder {
// private static final ResourceBundle bundle = ResourceBundle.getBundle("org.yccheok.jstock.data.gui");
//}
private static final ResourceBundle bundle = ResourceBundle.getBundle("org.yccheok.jstock.data.gui");
private GUIBundle() {
}
public static String getString(String key) {
// return BundleHolder.bundle.getString(key);
return bundle.getString(key);
}
}
public class SellPortfolioChartJDialog extends javax.swing.JDialog {
private static final String[] cNames = new String[] {
GUIBundle.getString("BuyPortfolioTreeTableModel_NetGainValue")
};
}
Depuis CNAMES est dans la portée statique, est-il sûr pour qu'il puisse accéder à faisceau statique? Cela rend-il différent si j'utilise une technique d'initialisation paresseuse? Je me souviens que je suis tombé sur un article (j'ai quand même perdu l'article) sur l'ordre d'initialisation non déterministe des variables statiques. Je ne suis pas sûr si le non déterministe de l'ordre d'initialisation des variables statiques, appliqué au cas ci-dessus?
Votre API retourne 'CHAINE' et vous essayez d'obtenir' String [] '- ce ne sera pas compiler de toute façon. Je pense que je comprends le thème, et je pense que cela fonctionnera (en toute sécurité) si vous corrigez votre code. –
@ring il construit un String [] avec 1 String dedans. – corsiKa
la méthode getString devrait avoir "return bundle.getString (key)" et un ';' pour cNames est manquant, ... et il compile, je suppose une faute de frappe à cause du code commenté :) – naikus