Aufgrund der umfangreichen Profilerstellung ist unser Java-Code mit Ausgaben von Methodenergebnissen von Nullable-Objekten überladen.Nullprüfmethode mit java8 Methodenreferenz möglich?
Es sieht aus wie diese
namedObject == null ? "?" : namedObject.getName()
ist es möglich, eine statische Methode für diese zu schreiben? (z.B. so aussehen):
Util.nvl(namedObject, NamedObject::getName, "?")
Wie würde = Util.nvl aussehen? Ich habe ein bisschen nach einem gesuchten Google experimentiert, aber habe kein Ergebnis erbracht.
funktioniert das nicht:
public static <T> T nvl(T value, Function<T, ?> method, T nullSubstition) {
return value == null ? nullSubstition : (T) method.apply(value);
}
Der Compiler sagt mir: nicht-statische Methode getName() aus einem statischen Kontext kann Ihre Unterschrift nicht referenziert werden können
Hervorragende Antwort, vielen Dank! – Nachaz
Es ist kein "nvl" -Operation, aber es ist eine "getOrDefault" -Operation. –