101 votes

'En option.get()' sans 'isPresent()' vérifier

J'ai la suite de la recherche de code en Java:

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

J'étais désireux de trouver de la colonne par le nom et le retour premier trouvé.

J'ai compris que c'est un cas quand rien trouvé et il doit être traité, mais comment?

Est-ce ce qu'il veut par cette prestation de serment:

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

?

Comment réparer? Je voudrais revenir null si rien n'a été trouvé.

Mise à JOUR

Okay, Okay, j'ai juste ne le savais pas, que findFirst() retours Optional.

214voto

Andy Turner Points 13883

Remplacer get() avec orElse(null).

24voto

Andrew Tobilko Points 1283
...findFirst().orElse(null);

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X