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

    [JAVA] Richiamare proprietā da stringa

    Salva a tutti,
    la mia domanda č molto semplice...

    in JavaScript esiste la funzione eval in grado di valutare una espressione di tipo stringa, quindi ad esempio

    eval("a = 5;")

    (o una sintassi simile, adesso non ricordo bene )

    setterebbe la variabile a = 5, esiste un modo equivalente in Java???

    del tipo io ho in un file di testo una serie di metodi memorizzati come stringhe, X ES. "toString()"

    e devo fare una cosa del genere myClass.eval("toString()") per avere lo stesso effetto di fare myClass.toString()

    fatemi sapere, aspetto impaziente, Grazie. :rollo:
    Let's your dream came true!

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    se ti servono spiegazioni chiedi
    codice:
      public void execute() {
        String s = "";
        String method = "toString";
        Class cs = s.getClass();
        try {
          java.lang.reflect.Method mt = cs.getMethod(method, new Class[0]);
          Object result = mt.invoke(s, new Object[0]);
        } catch (SecurityException sex) {
          sex.printStackTrace();
        } catch (NoSuchMethodException nsmex) {
          nsmex.printStackTrace();
        } catch (InvocationTargetException itex) {
          itex.printStackTrace();
        } catch (IllegalArgumentException iaex) {
          iaex.printStackTrace();
        } catch (IllegalAccessException iaex) {
          iaex.printStackTrace();
        }
      }

  3. #3
    io ho una cosa del genere...

    ho il nome della variabile in un file di testo tipo: idPersona
    ed ho una classe chiamata Persone sempre memorizzata all'interno di un file, tipo: com.a.b.c.Persone

    adesso devo riuscire a richiamare il metodo setIdPersona della classe Persone, come posso fare?

    Ho capito il tuo esempio ma soltanto vagamente...

    Grazie del grandissimo aiuto che mi stai dando...
    Let's your dream came true!

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    devi solo adattare il codice
    creazione di un oggetto
    Object o = Class.forName("com.a.b.c.Persone").newInstance();
    il resto dovrebbe essere facile

  5. #5
    allora perfetto, questa sera ci faccio un giro e ti faccio sapere...

    Per ora grazie infinite!

    PS
    Un'ultima cosa...
    e se il metodo che devo richiamare non ha valore di ritorno (void per intenderci) la sintassi č sempre la stessa?
    Let's your dream came true!

  6. #6
    Originariamente inviato da ale500
    allora perfetto, questa sera ci faccio un giro e ti faccio sapere...

    Per ora grazie infinite!

    PS
    Un'ultima cosa...
    e se il metodo che devo richiamare non ha valore di ritorno (void per intenderci) la sintassi č sempre la stessa?
    Si chiama reflection, cerca anche su google cosė trovi do ed esempi
    Il centro dell'attenzione non č sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    fai cosi'
    mt.invoke(oggetto, parametri);

  8. #8
    adesso si che ho capito....
    benissimo...

    ultima delucidazione...

    nel caso in cui non ci siamo parametri???

    scusate le domande ma non ho il pc davanti e quindi non posso provare niente...

    Grazie.
    Let's your dream came true!

  9. #9
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    mt.invoke(s, new Object[0]);

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.