Я имею дело с каким-то кодом, который имеет последовательную структуру создания экземпляров Карты, как это:Должен ли я предпочитаю читаемость по безопасности в моем коде?
Map<String, String> valuesMap = new HashMap<String, String>();
valuesMap.put("UserName", "Value1");
valuesMap.put("FirstName", "Value2");
valuesMap.put("LastName", "Value3");
valuesMap.put("Email", "Value4");
Я думал, что это может быть читаемым, как это:
Map<String, String> valuesMap = createMap(
"UserName", "Value1",
"FirstName", "Value2",
"LastName", "Value3",
"Email", "Value4"
);
С помощью следующего метода:
private Map<String, String> createMap(String... parameters) {
Map<String, String> valueMap = new HashMap<String, String>();
if (parameters.length % 2 == 0) {
for (int i = 0; i < parameters.length; i+=2){
String key = parameters[i];
String value = parameters[i + 1];
valueMap.put(key, value);
}
} else {
throw new IllegalArgumentException("The parameters to this method must be even in number");
}
return valueMap;
}
Но при этом я теряю способность ловить ошибки во время компиляции. Например: кто-то может легко сделать следующий
Map<String, String> valuesMap = createMap(
"UserName", "Value1",
"FirstName", "Value2",
"LastName", // missing value for key
"Email", "Value4"
);
Я соблазном использовать более читаемый метод, нужны предложения от вас, ребят.
Edit:
- Есть много случаев, объявленных как в первом примере.
- Ключи и значения не заполнены, а являются декаляцией строк больше, чем статические интинерализаторы.
- больше как код, содержащий несколько объявлений
- ключи и значения различны на каждом declareation
---- Скит @ Джон Спасибо за указание на ошибку.
'createMap()' метод - это ужасный способ заселения карты. Избегай это. Может быть другой способ улучшить его, если вы сообщите нам, откуда вы читаете эти значения? –
Почему бы не сделать * лучший * метод, который является удобочитаемым * и * безопасным? –
значения - это укусы, как показано выше в коде, я не заселяю их нигде. – VishalDevgire