@Archy901

Есть сообщение с полем типа string, могу ли я анализировать это поле?

есть поле (тип string) "value": "ОК" / "Error" - то есть два возможных значения. Могу ли я на основании значения вывести что-то соответствующее. Например если пришло "OK" - написать "everything is good", а если пришло "Error" написать "something wrong". Это вообще нормальная практика анализировать строку? Или для этого надо использовать boolean type или int?
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
if(value.equals("OK"))  { ... }

switch(value) {
    case "OK": ... break;
    case "Error": ... break;
}

Строковых параметров для проверки некоторого ограниченного списка значений лучше избегать (нужно будет предусматривать ситуации с разными кейсами, пробелами внутри, опечатками, которые не отследить при компиляции и прочее), вместо них можно использовать boolean или enum-типы (если больше двух значений).

enum Status {
    Ok,
    Error,
    Warning
}

class Foo {
    static void bar(Status status) {
        if (status == Status.Ok) {
            ... 
        }
        ...
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Konstantin18ko
@Konstantin18ko
Стоматолог
Если конечный результат будет иметь значение да/нет, OK/error, true/false лучше использовать boolean, если значений больше двух - int.

Вообще использовать string как индикатор результата удачно/неудачно - плохая затея.

Лучше использовать string как расшифровка значения. Допустим значение boolean - false, значение string "Операция завершилась неудачно, boolean - true, значение string "Операция завершилась удачно".
Ответ написан
compilator
@compilator
Senior Data Engineer
Сделайте метод void. В случае если в логике метода может что-то пойти не так, не надо возвращать ни boolean, ни int. Кидайте исключение.
В итоге у вас получится:
Если ОК - просто выполнили логику
Если Error - кинули Exception
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
23 апр. 2024, в 11:46
3000 руб./за проект
23 апр. 2024, в 11:38
20000 руб./за проект