从GWT主页中读取属性的最佳方法是什么?
我正在尝试找到一种将属性嵌入主页并从Java访问它们的简单方法。
似乎Dictionary似乎是推荐的方式,但它有点脆弱,因为您的词典必须存在于主机页面中,或者它与MissingResourceException
错误。同样,如果您请求的密钥不存在,Dictionary.get()
将抛出资源错误。
我正在编写一个库,我更喜欢一个更强大的解决方案,如果用户没有指定字典或密钥,它就不会出错。我应该只捕获Dictionary引发的异常并返回null吗?有没有更强大的方法来做到这一点?
编辑:目前,我正在使用以下内容:
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;
}
答案 0 :(得分:3)
我想说,你的解决方案已经非常强大了。抓住它是绝对可以的 - 没有重新抛出 -
您甚至可以稍微更改一下getString()方法:
public String getString(String key) {
try {
return dict == null ? null : dict.get(key);
} catch (MissingResourceException e) {
return null;
}
}
这应该使该方法几乎快两倍,因为您将额外的调用保存到dict.keySet().contains(key)
,这大约需要dict.get(key)
。