-3
votes

Java Facultatif: chèque plusieurs alternatives (code plus élégant)

Je suppose qu'il y a un autre moyen plus élégant d'écrire ce code: XXX

TOUT IDEES?


0 commentaires

4 Réponses :


4
votes

Ceci est une mauvaise utilisation de en option code>, utilisez simplement une comparaison normale et l'opérateur || code> (ou):

return 
    request.getHeader(EspaiDocConstants.Headers.GICAR_HEADER) != null || 
    request.getHeader(EspaiDocConstants.Headers.HTTP_GICAR_HEADER) != null;


0 commentaires

2
votes

Il n'y a pas besoin de en option code> du tout: il suffit d'utiliser un ancien chèque NULL uni.

return request.getHeader(EspaiDocConstants.Headers.GICAR_HEADER) != null
    || request.getHeader(EspaiDocConstants.Headers.HTTP_GICAR_HEADER) != null;


0 commentaires

2
votes

Il suffit de le garder à l'ancienne: xxx pré>

Si vous voulez absolument utiliser une fonctionnalité de fantaisie Java8, vous pouvez utiliser flux code>: p>

return Stream.of(
    request.getHeader(EspaiDocConstants.Headers.GICAR_HEADER),
    request.getHeader(EspaiDocConstants.Headers.HTTP_GICAR_HEADER)
).anyMatch(Objects::nonNull);


0 commentaires

-1
votes

Comme les personnes indiquées déjà, sa manière inutile - et pas vraiment agréable. Mais si vous vouliez vraiment vraiment faire cette vérification sur les options, vous pouvez le faire comme ça. XXX


2 commentaires

Cela donnera un résultat différent de celui du code de l'OP. Vous vérifiez actuellement que au moins une des constantes sont présentes. Mais pas que les en-têtes de la demande sont présents


@Lino Oops, je pensais avoir copié toute la demande - puis encore une fois, cela ne devrait pas être utilisé de toute façon: v