Post

Visualizzazione dei post con l'etichetta java.lang.IllegalAccessException

Java Reflection: accesso a metodi e campi privati

DOMANDA: Come si può accedere da un classe generica ai metodi e alle variabili di istanza private di un'altra classe? RISPOSTA: Genericamente non è possibile accedere ai campi o metodi privati  di un'altra classe. Ma g enericamente non vuol dire in modo assoluto! Infatti, grazie alla Reflection Java possiamo accedere ai campi privati di un'altra classe. Analizziamo alcuni metodi che ci mette a disposizione la classe java.lang.Class : getFields() : permette di recuperare la lista di tutti i campi pubblici della classe e della sua superclasse; getDeclaredFields() : fornisce la lista di tutti i campi presenti nella classe (senza distinzione di visibilità); getDeclaredMethods() : come sopra ma applicato ai metodi; getDeclaredField(String nome) : restituisce il Field indicato come parametro (senza distinzione di visibilità); getDeclaredMethos(String nome) : restituisce il Method indicato come parametro (senza distinzione di visibilità). Guardiamo l&