Es ist eine Null-Zeiger-Ausnahme, die mit Java geliefert wird, aber ich wollte den Wert so sicher wie möglich erhalten, also habe ich diesmal die Methode ausprobiert, den Wert von Map abzurufen.
Map<String, Boolean> map = new HashMap<String, Boolean>() {
{
put("true_label", true);
put("false_label", false);
put("null_label", null);
}
};
assertTrue(map.get("true_label"));
assertFalse(map.get("false_label"));
assertNull(map.get("null_label"));
assertNull(map.get("invalid_label")); //Schlüssel, die in Map nicht vorhanden sind
Sie können einen alternativen Wert erhalten, wenn Sie den Schlüssel nicht haben.
assertTrue(map.getOrDefault("true_label", false));
assertFalse(map.getOrDefault("false_label", false));
assertFalse(map.getOrDefault("invalid_label", false)); //Sie können einen alternativen Wert erhalten, wenn Sie den Schlüssel nicht haben.
assertNull(map.getOrDefault("null_label", false)); //Leider wird es nicht falsch!!
assertTrue(Optional.ofNullable(map.get("true_label")).orElse(false));
assertFalse(Optional.ofNullable(map.get("false_label")).orElse(false));
assertFalse(Optional.ofNullable(map.get("null_label")).orElse(false)); //Alternativer Wert false
assertFalse(Optional.ofNullable(map.get("invalid_label")).orElse(false)); //Alternativer Wert false
Optional kann in Ordnung sein, aber nur für den Fall
assertTrue(ObjectUtils.defaultIfNull(map.get("true_label"), false));
assertFalse(ObjectUtils.defaultIfNull(map.get("false_label"), false));
assertFalse(ObjectUtils.defaultIfNull(map.get("null_label"), false)); //Alternativer Wert false
assertFalse(ObjectUtils.defaultIfNull(map.get("invalid_label"), false)); //Alternativer Wert false
Recommended Posts