web-dev-qa-db-fra.com

Vérification 'optionnelle.get ()' sans 'isPresent ()'

J'ai le code de recherche suivant en Java:

return getTableViewController().getMe().getColumns().stream().filter($->Database.equalsColumnName($.getId(), columnId)).findFirst().get();

Je souhaitais trouver la colonne par son nom et retourner la première trouvée.

Je comprends qu'il y a un cas où rien n'a été trouvé et il devrait être traité, mais comment?

Est-ce ce qu'il veut par cette assermentation:

'Optional.get()' without 'isPresent()' check

?

Comment réparer? Je souhaite retourner null si rien n'est trouvé.

UPDATE

D'accord, d'accord, je ne savais tout simplement pas que findFirst() renvoie Optional.

59
Dims

Remplacez get() par orElse(null) .

131
Andy Turner
...findFirst().orElse(null);

Renvoie la valeur si présente, sinon renvoie null. La documentation indique que le paramètre transmis peut être null (ce qui est interdit pour orElseGet et orElseThrow ).

17
Andrew Tobilko