2010-12-04 5 views
2

Quelle est la meilleure façon de lire les propriétés de la page hôte GWT? J'essaie de trouver un moyen simple d'intégrer des propriétés dans la page hôte et d'y accéder à partir de Java.comment lire les propriétés de la page hôte GWT?

Il semble que Dictionary est la méthode recommandée pour y aller, mais il est un peu fragile dans le dictionnaire que votre doit existe dans la page d'accueil, ou des erreurs avec MissingResourceException. De même, Dictionary.get() déclenchera une erreur de ressource si la clé que vous demandez n'existe pas. J'écris une bibliothèque, et je préférerais une solution plus robuste qui ne fera pas d'erreur si l'utilisateur ne spécifie pas le dictionnaire ou la clé. Dois-je juste attraper les exceptions lancées par le dictionnaire et retourner la valeur null? Existe-t-il un moyen plus robuste de le faire?

EDIT: en ce moment, j'utilise les éléments suivants:

protected Dictionary dict; 

public ClientConfiguration(String configName) 
{ 
    try 
    { 
     dict = Dictionary.getDictionary(configName); 
    } catch (MissingResourceException e) 
    { 
     dict = null; 
    } 
} 

public String getString(String key) 
{ 
    return dict == null ? null : dict.keySet().contains(key) ? dict.get(key) : null; 
} 

Répondre

3

Je dirais que votre solution est très robuste déjà. Il est tout à fait correct pour attraper - sans rethrowing -

  • un que vous attendez de se produire exception spécifique (MissingResourceException)
  • qui (la ressource pourrait manquer),
  • et qui ne se produira dans les circonstances vous vous attendez (il serait mauvais d'attraper une exception NullPointerException, car il peut y avoir plusieurs raisons à cette exception).

Vous pouvez même changer votre méthode getString() un peu:

public String getString(String key) { 
    try { 
    return dict == null ? null : dict.get(key); 

    } catch (MissingResourceException e) { 
    return null; 
    } 
} 

Cela devrait rendre la méthode presque deux fois plus vite, parce que vous enregistrez l'appel supplémentaire à dict.keySet().contains(key), qui prend à peu près aussi longtemps comme dict.get(key).

+0

Ah, bon appel sur cette optimisation. –

Questions connexes