Originariamente inviato da Mitele
la lista secondo me potrebbe essere di qualsiasi tipo
Se un metodo restituisce una lista che contiene solo oggetti della classe X
quindi adotta come parametro di tipo il nome di tale classe, allora non hai altra scelta che assegnare tale oggetto ad una lista definita per contenere istanze della classe X.
Quindi, ad esempio, non puoi assegnare tale lista a List<Y>.
Originariamente inviato da Mitele
se io ho una lista di oggetti sconosciuti dovrei avere la possibilità di verificare il tipo degli oggetti...come si fa?
Devi ricorrere all'uso della RTTI.
Ecco un esempio:
codice:
public static void main(String[] args) {
java.util.List<Object> listObject = new java.util.ArrayList<Object>();
listObject.add( "stringa" );
listObject.add( true );
listObject.add( 0 );
listObject.add( "altra stringa" );
listObject.add( 'v' );
listObject.add( false );
listObject.add( 1 );
listObject.add( 1.5 );
java.util.Map<Class, Integer> map = new java.util.HashMap<Class, Integer>();
for(Object o : listObject) {
Class instanceClass = o.getClass();
if( map.get( instanceClass ) == null )
map.put( instanceClass, 0 );
map.put(instanceClass, map.get(instanceClass) + 1);
}
System.out.println("Nella lista ci sono:");
for(Class key : map.keySet())
System.out.println(map.get(key) + " istanza/e della classe " + key.getSimpleName() );
}
per ogni classe istanziata vengono contate le relative occorrenze all'interno della lista.