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

    Dubbi su reflection java

    Ciao a tutti,
    premetto che sono nuovo del forum ed ho cercato ovunque un aiuto per questo problema, che per adesso non riesco ancora a risolvere.
    Ho sempre avuto alcuni dubbi amletici sul linguaggio java, il primo riguarda la reflection il secondo i generics, questo problema che sto per scrivere penso li affronta entrambi.
    Per lavoro devo creare un metodo che, a runtime, presa una lista di parametri da un file di proprietà (che corrispondono a campi di un bean), riesce dinamicamente a costruire il metodo get per ottenere tali valori da una classe.
    Tutto questo per poter eseguire poi un update dinamico su un database a seconda dei parametri voluti dall'utente.
    Ad esempio: parametro "nome" --> creato il metodo getNome da istanza persona (che comunque ho) --> lancio di questo metodo per avere il nome e operazioni successive.
    Dai suggerimenti che ho avuto dovrei farlo con le reflections, ma come? Ho visto che esistono librerie come la BeanUtils per fare questo velocemente ma ovviamente non conoscendo bene la cosa non so nemmeno come usarle... potreste darmi una mano?

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Dubbi su reflection java

    Originariamente inviato da raptus84
    Per lavoro devo creare un metodo che, a runtime, presa una lista di parametri da un file di proprietà (che corrispondono a campi di un bean), riesce dinamicamente a costruire il metodo get per ottenere tali valori da una classe.
    Tutto questo per poter eseguire poi un update dinamico su un database a seconda dei parametri voluti dall'utente.
    Ad esempio: parametro "nome" --> creato il metodo getNome da istanza persona (che comunque ho) --> lancio di questo metodo per avere il nome e operazioni successive.
    Dai suggerimenti che ho avuto dovrei farlo con le reflections, ma come? Ho visto che esistono librerie come la BeanUtils per fare questo velocemente ma ovviamente non conoscendo bene la cosa non so nemmeno come usarle... potreste darmi una mano?
    La Apache Commons BeanUtils è di certo più pratica e veloce. E non è comunque difficile da usare, perlomeno per un semplice set di una proprietà.

    Sulla documentazione ufficiale c'è la spiegazione con esempio:
    2.2 Basic Property Access

    Se non vuoi usare la BeanUtils, si può fare sia usando direttamente la reflection partendo dal Class (cercando il metodo, ecc...) sia in modo un pelino più semplice (ma sempre con la reflection) usando le classi standard del package java.beans.

    Scegli tu, se hai dubbi, chiedi pure.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Dubbi su reflection java

    Originariamente inviato da andbin

    Se non vuoi usare la BeanUtils, si può fare sia usando direttamente la reflection partendo dal Class (cercando il metodo, ecc...) sia in modo un pelino più semplice (ma sempre con la reflection) usando le classi standard del package java.beans.

    Scegli tu, se hai dubbi, chiedi pure.
    Potresti spiegare meglio questo passaggio?


    Io ad esempio sto provando ad usare BeanUtils per fare questo:
    Classe bean : PERSONA
    attributo nel file properties : NOME

    String method = (String) PropertyUtils.getMappedProperty(PERSONA,NOME);

    Ma mi da IllegalArgumentException.

    Adesso me lo sto costruendo "a mano" così:

    String method = "get"+StringUtils.upperCase(NOME.substring(0,1))+N OME.substring(1, NOME.length());

    Funziona ma mi pare una forzatura sullo stile del "potevo anche fare a meno della reflection"...insomma pensavo che ci fosse un metodo più furbo per avere già il metodo senza ricostruirlo.

    La reflection la uso praticamente solo qua nella chiamata per ottenere l'attributo:
    attribute= (String)MethodUtils.invokeMethod(PERSONA, method, null);

    Grazie mille!!!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Dubbi su reflection java

    Originariamente inviato da raptus84
    Potresti spiegare meglio questo passaggio?
    Ma vuoi usare la BeanUtils ... oppure no?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Scusa ho modificato ora il post che non si capiva, sisi voglio usare BeanUtils

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da raptus84
    sisi voglio usare BeanUtils
    Object valore = PropertyUtils.getSimpleProperty(oggettoBean, "nomeProprietà");
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Grazie mille funziona alla grande!!

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.