/ / Java Найпростіший спосіб призначити значення змінної за замовчуванням за допомогою АБО? - java

Java найпростіший спосіб призначити значення змінної за замовчуванням за допомогою АБО? - java

Я читав дані з файлу CSV і хотів бипризначити значення стовпців змінним. Можливо, файл не містить потрібного поля. Тоді я хотів би призначити значення за замовчуванням. Я хотів би щось подібне до цього:

String country = nextLine[columnIndices.get("country")] || "Austria";

Який найелегантніший спосіб без великої кількості прихильників. (Я новачок у Java від C #)

Відповіді:

9 для відповіді № 1

Використовуйте метод:

private String valueOrDefault(String value, String defaultValue) {
return value == null ? defaultValue : value;
}

...

String country = valueOrDefault(nextLine[columnIndices.get("country")], "Austria");

5 для відповіді № 2

Ви можете зробити це так:

String country = (nextLine[columnIndices.get("country")] != null) ? nextLine[columnIndices.get("country")] : "default";

3 для відповіді № 3

Оскільки Java 8 ви також можете використовувати

String s = Optional.ofNullable(fooStr).orElse("bar");
// may be null ----------------^^^^^^

1 для відповіді № 4

Припускаючи, що перший варіант не може кинути a NullPointerException, Я рекомендую Apache Commons " firstNonNull

Це дозволяє пройти будь-яка кількість аргументів і воно поверне перше ненулеве значення.

String country = ObjectUtils.firstNonNull(nextLine[columnIndices.get("country")], "Austria");
// Add more arguments if needed

1 для відповіді № 5

Просте, якщо твердження може його вирішити:

String country = nextLine[columnIndices.get("country")];
if (country == null)
country = "Austria";

0 для відповіді № 6

Якщо припустити, що ви можете використовувати Java 8, ви можете використовувати необов’язково.

 Long value = findOptionalLong(ssn).orElse(0L);

Це встановлює значення на число або 0, якщо воно не знайдено.


0 для відповіді № 7

Простіший і легкий для читання:

String country = nextLine[columnIndices.get("country")];
country = (country != null) ? country : "Austria";

0 для відповіді № 8

Або створити загальний метод

static <T> T nvl(T first, T ifFirstNull) {
return (first != null ? first : ifFirstNull);
}

І ви можете використовувати його для будь-яких об'єктів