Quote:
Originariamente inviato da balth@zar
Ma ti serve addirittura una libreria?
Non bastano un po' di cicli for annidati?
Oppure se vuoi fare una cosa un po' più elegante costruisci una serie di iteratori, uno per ogni parametro o gruppo di parametri; ogni iteratore restituisce una serie di valori del parametro nell'ordine da te richiesto, poi crei una funzione ricorsiva che prende come argomento un array di iteratori e richiama la tua funzione "calcolo" con l'array (o la mappa o quello che preferisci) dei valori ottenuti iterando sullo spazio dei parametri.
Faccio un esempio perchè mi sono capito da solo:
- paramIteratorA e paramIteratorB sono due iteratori che mi restituiscono rispettivamente le serie di valori per i parametri A e B
- calcolo(Object[] params) è la mia funzione di calcolo che prende come argomento un array [A, B] di parametri
La funzione di iterazione sarà una cosa del tipo:
Codice:
public void iterate(Iterator<Object[] iterators) {
iterate(iterators, new Object[iterators.length], 0);
}
protected void iterate(Iterator<Object>[] iterators, Object[] params, int level) {
Iterator paramIt=iterators[level];
List<Object> values=new ArrayList<Object>();
while (paramIt.hasNext() {
values.add(paramIt.next());
}
for (Object param: values) {
params[level]=param;
if (level<iterators.length-1) {
iterate(iterators, params, level+1);
} else {
calcolo(params);
}
}
}
|
A una cosa del genere avevo pensato anche io, ma pensavo ci fosse già qualche software che a partire da dei parametri generasse una sorta di script.
Il problema principale è che stavo cercando un modo per scrivere sotto forma di "script" le impostazioni dei parametri.