Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [JAVA] codice dentro codice

    Ciao a tutti,

    per rendere + performante una classe che ha una cascata di if, volevo usare un indicizzatore che che al suo interno aveva tante stringhe di codice.
    In soldoni: è possibile in java compilare codice runtime, per spiegarmi meglio ad esempio eseguire mentre l'applicazione gira una stringa di codice (exec("System.out.println()")).

    E' un'eresia o è possibile??

    Grazie tante
    manuel

  2. #2
    sarò sincero...non ho capito

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [JAVA] codice dentro codice

    Originariamente inviato da ing. Manuel
    E' un'eresia o è possibile??
    Prova a spiegarti un po' meglio
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    dunque, ho creato un'applicativo, dove per rendere la gui responsive ho un demone che gestisce tutte le operazioni relative all'applicazione. Per questo + di una centinaio di "if" i quali in macchine non tanto potenti diventano troppo onerosi.
    Allora siccome ho già basato tutta l'applicazione su alberi binari, avrei intenzione di indicizzare tutte le operazione del demone.
    Ovvero quando lo lancio l'applicativo nell'albero metto tutti gli indici che sono collegati a non + di 3 linee di codice.

    A parte tutto questo cappello introduttivo.
    Vorrei sapere se c'è il modo per compilare codice runtime.

    cioè io vado a prendere da una lista un array di stringhe e voglio che queste vengano processate.

    Si può fare??

    manuel

  5. #5
    ma scusa, se anche si potesse, come puoi pensare che compilare ed eseguire del codice a runtime possa essere piu' efficiente che valutare una serie di if?

    In ogni caso non mi e' chiaro il tuo problema, ne' tantomeno come la possibilita' di compilare codice a runtime potrebbe risolverlo.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma secondo me alla fine un workaround esiste:

    1. scrive un file.java
    2. exec di javac sul file.java
    3. exec di java su file

    e vedere cosa succede.
    Ma alla fine faceva prima a parsarsi le strighe (magari con un pattern ben scritto risparmia tempo)

  7. #7
    no anche così come dici non va bene perché avrei di inizializzare oggetti che sono già istanziati. Un piccolo esempio del codice:

    codice:
    while(true){
    			Event ev = queue.fetchEvent();
    			if(ev.getDescr().equals("sync_update")){
    				queue.notifyEvent(new Event("set_progress",10));
    				System.out.println("Syncronization");
    				sync = new Syncronized(queue);
    				new CheckOutStock(queue,sync).start();
    			}else if(ev.getDescr().equals("det_mat") && !mat_search){
    				
    					mat_search = true;
    
    					mview =  new MaterialView(queue,sync);
    					
    					view.addFrame(mview.getFrame());
    					
    
    				
    			}else if(ev.getDescr().equals("stop")){
    				System.out.println("Stop");
    				//view.setUpdateStateSuspend();

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ho capito, ma non so se ti rendi conto che preferisci chiamate di sistema (supponendo che non ci sia nessun errore runtime e/o di compilazione e mettendo in attesa la jvm del risultato di una scrittura su file, compilazione ed esecuzione) a controlli con if.

    Pensa invece se puoi modificare l'architettura, non so come è (conosco solo una parte del tuo programma), ma ricordo una cosa che diceva il mio prof di programmazione:
    " quando i controlli iniziano ad essere più di 3 forse la stessa cosa puoi farla in altro modo " e in effetti rivedere l'architettura e applicare correttamente i pattern del GOF in passato mi ha aiutato a ridurre il numero di controlli fatti

  9. #9

    [RISOLTO]

    Grazie per l'illuminazione. Ho trovato il pattern FlyWeigth che fa proprio al caso mio!!

    Ciao

    manuel

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157

    Re: [RISOLTO]

    Originariamente inviato da ing. Manuel
    Grazie per l'illuminazione. Ho trovato il pattern FlyWeigth che fa proprio al caso mio!!

    Ciao

    manuel
    Vedi il mio prof aveva ragione!!!!E' sconvolgente quanto a distanza di tempo le sue parole mi risultino vere!!
    Mi fa piacere che hai trovato la soluzione ciauuuu

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.