Moyen pratique de vérifier l'égalité pour les Options

Je suis à la recherche d'un moyen plus pratique de vérification linguistique de l'égalité, pour une valeur Facultative.

C'est ce qu'un Oracle post de Blog suggère:

Optional<USB> maybeUSB = ...; maybeUSB.filter(usb -> "3.0".equals(usb.getVersion())
                    .ifPresent(() -> System.out.println("ok"));

À mon humble avis se traduit par quelque chose comme

if (maybeUSB.filter(c -> "3.0".equals(c.getVersion())).isPresent()) {
   ...
}

Bien sûr que c'est un mauvais exemple car il compare la Version et de ne pas l'instance de l'USB elle-même, mais je pense qu'il devrait encore une preuve de mon point de.

Est-ce vraiment aussi bon qu'il obtient?

Pas

boolean presentAndEquals(Object)

ou

boolean deepEquals(Object)

Suis-je manqué quelque chose?

EDIT:

Je ne suis pas heureux avec Options.est égal à soit.
Dois-je vraiment zone un Objet tout d'abord instantanément unbox et vérifier l'égalité ?

Ne pas optimiser prématurément. Soit vous avez de la boîte (que vous ne connaissez pas le coût de l'), ou test pour isPresent() (dont vous ne connaissez pas le coût de l'). maybeFoo.equals(Optional.of(...)) est lisible, afin de l'utiliser.
Je suis d'accord au sujet de l'optimisation prématurée, mais c'est plus sur le code de golf que le timing.. parler de Java, à droite 😉
"Je ne suis pas heureux" Il n'y a rien de spécial à propos de Optional: c'est juste un conteneur pour une référence. Vous attendez-vous à une autre classe qui s'est passé pour contenir un String retourner la valeur true pour new Frobnitz("some string").equals("some string")? Le cas où la brièveté est utile sont compensés par les cas où il est tout simplement incorrecte.
La plus nette possible, de manière standard de vérification pour l'égalité, mais vous n'êtes pas heureux. Vous devriez peut-être passer à une autre langue.
Si vous regardez le code source de Optional, c'est vraiment un tas de fonctions de confort qui ont l'air aussi laid. Si c'est quelque chose que vous faites souvent, n'hésitez pas à commencer votre propre name.ebner.franz.Optionals et de faire le vilain s'en aller.

OriginalL'auteur Franz Ebner | 2016-05-03