L'interfaccia java.util.Predicate
contiene il metodo test(...)
, di cui JavaDoc indica che [valuta] questo predicato sull'argomento specificato e che [restituisce] true se l'argomento di input corrisponde al predicato, altrimenti falso .
Devo dire che test(..)
restituisce sempre true
o false
e non è mai permesso lanciare un'eccezione? Chiedo, perché le classi dal framework Collections hanno il concetto di "operazioni opzionali", dove è esplicitamente menzionato nel JavaDoc che alcuni metodi potrebbero generare UnsupportedOperationException
.
Prima di tutto, non sono un programmatore Java, non lavoro nello sviluppo di software di per sé, ma uso un linguaggio che è simile a Java per alcuni aspetti e cerco di seguire le convenzioni Java ove possibile. Ho provato a cercare risorse sull'argomento, ma la maggior parte di loro menziona come eseguire il controllo delle eccezioni dal codice dello stream.
Proverò a fare un esempio forzato qui. Diciamo che ho una classe Person
e una Predicate
definita come class IsAdult implements Predicate<Object>
. Tieni presente che ho utilizzato Predicate<Object>
e non Person
. Farebbe bene a lanciare un'eccezione se l'oggetto da testare non è un Person
, per il quale è possibile determinare se sono adulti, o se il ritorno del predicato false
, visto come l'oggetto che ha testato non poteva in nessun caso sono stato un adulto.