Sì, voleva questo, sapere che la collezione è parametrizzata con CC. Ma come ho ampiamente spiegato, non si può.Originariamente inviato da Rubox
Dato un List<CC>, a runtime vuoi ottenere l'informazione che la classe del generics è CC?
Sì, voleva questo, sapere che la collezione è parametrizzata con CC. Ma come ho ampiamente spiegato, non si può.Originariamente inviato da Rubox
Dato un List<CC>, a runtime vuoi ottenere l'informazione che la classe del generics è CC?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ma se io prendo un elemento della collezione e invoco il getClass(), non mi ritorna la classe CC?Originariamente inviato da andbin
Sì, voleva questo, sapere che la collezione è parametrizzata con CC. Ma come ho ampiamente spiegato, non si può.
al volante son nervoso
ArrayList<Number>, puoi scoprire che un elemento è es. un Integer o un Double (ma sarebbero dei casi) .... non puoi scoprire che la collezione è parametrizzata con Number!!Originariamente inviato da Rubox
Ma se io prendo un elemento della collezione e invoco il getClass(), non mi ritorna la classe CC?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Quello che intendevo io è l'output di questo programma di prova:
che mi da in outputcodice:// file GetClassExample.java package getclassexample; import java.util.ArrayList; public class GetClassExample { private ArrayList<Persona> persone; private ArrayList<Studente> studenti; public GetClassExample() { persone = new ArrayList<Persona>(); studenti = new ArrayList<Studente>(); studenti.add(new Studente("nome studente", "cognome studente", 23)); persone.add(new Persona("nome", "cognome")); if (persone.size() > 0) { Object obj = persone.get(0); Class classe = obj.getClass(); String classeStringa = classe.toString(); System.out.println("Classe array persone: " + classeStringa); } if (studenti.size() > 0) { Object obj = studenti.get(0); Class classe = obj.getClass(); String classeStringa = classe.toString(); System.out.println("Classe array studenti: " + classeStringa); } } public static void main(String[] args) { GetClassExample esempio = new GetClassExample(); } } // file Persona.java package getclassexample; public class Persona { private String nome; private String cognome; public Persona(String nome, String cognome) { this.nome = nome; this.cognome = cognome; } public String getCognome() { return cognome; } public void setCognome(String cognome) { this.cognome = cognome; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } } //file Sutende.java package getclassexample; public class Studente extends Persona { private int anni; public Studente(String nome, String cognome, int anni) { super(nome, cognome); this.anni = anni; } public int getAnni() { return anni; } public void setAnni(int anni) { this.anni = anni; } }
codice:Classe array persone: class getclassexample.Persona Classe array studenti: class getclassexample.Studente
al volante son nervoso
Lo ripeto ancora: che si vada a prendere il Class di un oggetto nella collezione, ok è fattibile. Ma questo, ripeto nuovamente, salvo casi specifici/particolari (dove casualmente il tipo non può/deve essere altro) non centra nulla con la "parametrizzazione" scritta nel sorgente.Originariamente inviato da Rubox
Quello che intendevo io è l'output di questo programma di prova:
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Originariamente inviato da andbin
Lo ripeto ancora: che si vada a prendere il Class di un oggetto nella collezione, ok è fattibile. Ma questo, ripeto nuovamente, salvo casi specifici/particolari (dove casualmente il tipo non può/deve essere altro) non centra nulla con la "parametrizzazione" scritta nel sorgente.Ok, è solo che non capivo cosa intendevi.
al volante son nervoso