как читать свойства со страницы хоста GWT? - PullRequest
2 голосов
/ 04 декабря 2010

Как лучше всего читать свойства со страницы хоста GWT?

Я пытаюсь найти простой способ встроить свойства в страницу хоста и получить к ним доступ из Java.

Похоже, Словарь - рекомендуемый путь, но он несколько хрупок в том смысле, что ваш словарь должен существовать на странице хоста, или он ошибается с MissingResourceException.Точно так же, Dictionary.get() выдаст ошибку ресурса, если запрашиваемый вами ключ не существует.

Я пишу библиотеку, и я бы предпочел более надежное решение, которое не выдаст ошибку, если пользовательне указывает словарь или ключ.Должен ли я просто перехватывать исключения, выдаваемые словарем, и возвращать ноль?Есть ли более надежный способ сделать это?

РЕДАКТИРОВАТЬ : на данный момент я использую следующее:

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;
}

1 Ответ

3 голосов
/ 04 декабря 2010

Я бы сказал, ваше решение уже очень надежное.Это абсолютно нормально, чтобы поймать - без перебрасывания -

  • определенное исключение (MissingResourceException)
  • , которое вы ожидаете (ресурс может отсутствовать),
  • и что произойдет только при ожидаемых вами обстоятельствах (было бы плохо перехватить NullPointerException, потому что может быть много причин для этого исключения).

Вы можете даже изменить свойМетод 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...