Вот моя проблема. У меня есть функция, называемая маршрутом, который работает правильно! Однако я хотел бы факторизовать контрольный блок параметров.Избегайте «Если (параметр == null)» оператор
Позвольте мне объяснить. Когда пользователь вводит URL-адрес для доступа к функции, он может поместить некоторые необязательные параметры (всего 6). По крайней мере один из этих параметров необходим для продолжения. Моя структура настроена так, чтобы присваивать нулевое значение параметрам, которые не были проинформированы пользователем.
Чтобы проверить, какие параметры были проинформированы, и проверить их, у меня есть блок:
public Result edit(String param1, String param2, String param3, String param4, String param5, String param6) {
Map<String, Object> parameters = new HashMap<>();
if (param1 != null) {
// Checking function depending on data type (URL, Boolean, ..), return a clean param or throw an InvalidParamException
// Variable param depends on type returned by checkParamType1
param = checkParamType1(param1);
parameters.put("param1", param);
}
if (param2 != null) {
param = checkParamType1(param2);
parameters.put("param2", param);
}
if (param3 != null) {
param = checkParamType2(param3);
parameters.put("param3", param);
}
if (param4 != null) {
param = checkParamType2(param4);
parameters.put("param4", param);
}
if (param5 != null) {
param = checkParamType3(param5);
parameters.put("param5", param);
}
if (param6 != null) {
param = checkParamType3(param6);
parameters.put("param6", param);
}
assert(parameters.size() > 0, "At least one parameter required");
// [TREATMENT]
}
Мой вопрос, по вашему мнению, можно факторизовать этот блок?
работает мой проект на JAVA 8.
Спасибо :)
Можете ли вы объяснить, что означает * factorize *? – alzee
хороший ресурс http://winterbe.com/posts/2015/03/15/avoid-null-checks-in-java/ –
Что делают методы checkParamType [123]? Разнообразны ли они для разных аргументов? – Matt