Ho realizzato un classe, che richiama il costruttore, per aggiornare tutte le variabile.
La classe serve a risolvere un espressione matematica.
Un esempio semplice:
String expression = "5*2^4"
Il programma in questo caso memorizza posizione dei numeri (5,2,4) e degli operatori (*,^)
Quando l'operatore si trova tra i due numeri computa l'operazione.
Ovviamente il programma risolve le parentesi, le funzioni(sin, cos) e tiene conto dei segni, anche ripetuti.
Ho paragonato questo programma con il "Nashorn" per le performance, ed ho notato che c'� una grande distinzione tra l'esecuzione di un solo ciclo o molti cicli per le due tempestiche di calcolo.
Sebbene il mio programma sia molto pi� veloce per pochi cicli, all'aumentare di essi viene poi superato dal Nashorn.
Infatti per computare l'espressione, richiamo il costruttore MathExpression(expression) generando una nuova istanza col new, e lo richiamo ogni volta che ho eseguito un operazione inserendo il risultato dell'oggetto in una variabile interna al metodo, che all'interno del ciclo serve a controllare se ci sono ancora numeri/operatori nell'espressione dal momento.
All' interno della classe MathExpression, ci sono gli attributi: operatori, numeri...
Vorrei sostituire alla chiamata del costruttore quella dei metodi che sono invocati da esso, ma se faccio cos�,
siccome non c'� una nuova istanza, subentrano problemi, ed il programma non risolve pi�.
Una idea � di creare una copia dell'istanza e usare quella.
Altre idee?