Supponiamo che abbia una stringa: String s = "1,2,3,4,5,6"
. Vorrei creare un metodo combineFunctions()
che prendesse una sequenza di lunghezza variabile di Function
s come argomento e applicasse tutte le operazioni in quell'ordine.Creare un metodo che accetta la lunghezza variabile di argomenti Function con tipi possibilmente diversi
Le funzioni possono avere diversi tipi <T,U>
.
Esempio utilizza di tale funzione potrebbe essere il seguente:
Combine<String> c = new Combine<>(s);
List<String> numbers = c.combineFunctions(splitByComma);
Integer max = c.combineFunctions(splitByComma,convertToInt, findMax);
Quello che ho cercato (la <U>
qui non è l'uso di molto qui):
public <U> void combineFunctions(
Function<? extends Object, ? extends Object>... functions) {
}
Ma io sono bloccato a ricevendo il tipo dell'ultimo dei Function
s. Stavo anche pensando a un approccio ricorsivo, ma il parametro varargs deve essere l'ultimo.
Sarebbe possibile implementare tale metodo in Java?
cosa intendi con questo "Ma sono bloccato a ottenere il tipo dell'ultima delle funzioni". puoi spiegare per favore? –
Sembra 'Stream' e il metodo' map'. – gontard
Se si sa che verrà sempre chiamato con un numero relativamente piccolo di argomenti (ad esempio meno di 10 funzioni) è possibile scrivere 10 metodi 'combinati' (Funzione, Funzione) '. Questo è un modo standard per mantenere la sicurezza del tipo accettando un numero (ma limitato) di argomenti. –
assylias