Quando si definisce Predicate 's o Function' s, ho usato per creare loro come static final
modo corretto definire predicati e funzioni
private static final Predicate<SomeDto> SOME_PREDICATE =
new Predicate<SomeDto>() {
@Override
public boolean apply(SomeDto input) {
return input.isValid();
}
}
Tuttavia ho notato che c'è un sacco di utilizzo anche con enum
versione, per esempio
private enum SomePredicate implements Predicate<SomeDto> {
INSTANCE;
@Override
public boolean apply(SomeDto input) {
return input.isValid();
}
}
sono consapevole circa le enum vs static final argomenti, ma c'è un reale vantaggio di utilizzare enum di sopra statica finale con predicati o funzioni?
Non sono sicuro dei vantaggi ma c'è uno svantaggio dal punto di vista della leggibilità, 'SOME_PREDICATE.apply (input)' è più pulito di 'SomePredicate.INSTANCE.apply (input)'. Di nuovo, sono solo io e non tutti troveranno un problema con la leggibilità dell'approccio enum. – CKing