Post

Visualizzazione dei post con l'etichetta ricorsione

Recuperare programmaticamente i campi di un oggetto

DOMANDA: Come posso recuperare tutti i campi di un oggetto programmaticamente? RISPOSTA: Per recuperare tutti gli attributi/campi di un oggetto è sufficiente usare la Reflection di Java con un po' di ricorsione.  Definiamo una classe User con delle proprietà: package lancill.objectfields.pojo; import java.util.List; public class User extends Person{ private String mail; private String userid; private List<String> contacts; private List<User> friends; public User(){} public User(String name){ super(name); } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public List<String> getContacts() { return contacts; } public void setContacts(List<String> contacts) { this.contacts = contacts; } public List<User> getFriends() { return friends; } p

La ricorsione in Java

Immagine
DOMANDA: Che cos'è la ricorsione? RISPOSTA: La ricorsione è forse una delle prime cose che si studiano in programmazione e, diciamoci la verità, non è così intuitiva per chi è alle prime armi. A cosa serve la ricorsione ? A creare dei cicli (o chiamate cicliche) in maniera alternativa al classico for. In questo post cerchiamo di semplificarne il concetto utilizzando Java, ma è praticamente uguale in tutti i linguaggi di programmazione. Guardiamo subito un esempio a scopo puramente didattico: package ricorsione; public class RicorsioneTest { public static void main(String[] args) { int variabile = metodoRicorsivo(); } public static int metodoRicorsivo(){ return metodoRicorsivo(); } } Cosa succede eseguendo questo frammento di codice? Innanzitutto  sconsiglio di eseguirlo dato che sarà un'inconclusiva Exception a Runtime ( java.lang.StackOverflowErrorloop )! In pratica l'unica riga di codice del main richiama un metodo che richiama se stess