Ciao a tutti...
se volessi fare la seguente cosa
cosa dovrei fare esattamente? per caso, devo implementare il metodo toArray() o qualcosa del genere?codice:MyClass a = new MyClass(); for (MyClass b : a) { ... }
Ciao a tutti...
se volessi fare la seguente cosa
cosa dovrei fare esattamente? per caso, devo implementare il metodo toArray() o qualcosa del genere?codice:MyClass a = new MyClass(); for (MyClass b : a) { ... }
Dipende molto da cosa fa la tua classe.Originariamente inviato da TuTToWeB
Ciao a tutti...
se volessi fare la seguente cosa
cosa dovrei fare esattamente? per caso, devo implementare il metodo toArray() o qualcosa del genere?codice:MyClass a = new MyClass(); for (MyClass b : a) { ... }
Comunque affinché un oggetto possa essere il "target" di un ciclo for-each, la sua classe deve implementare la interfaccia Iterable (package java.lang). Iterable definisce solo un metodo iterator() che ritorna un oggetto Iterator (che ha i metodi hasNext, next usati appunto per fare la iterazione).
Ripeto: bisogna vedere cosa devi fare e cosa fa la tua classe. Il codice che hai postato sopra non ha molto senso.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
è una lista linkata fatta da me...Originariamente inviato da andbin
Dipende molto da cosa fa la tua classe.
Comunque affinché un oggetto possa essere il "target" di un ciclo for-each, la sua classe deve implementare la interfaccia Iterable (package java.lang). Iterable definisce solo un metodo iterator() che ritorna un oggetto Iterator (che ha i metodi hasNext, next usati appunto per fare la iterazione).
Ripeto: bisogna vedere cosa devi fare e cosa fa la tua classe. Il codice che hai postato sopra non ha molto senso.
quindi ha senso implementare iterable.
Benissimo, allora nella tua classe devi implementare Iterable<Qualcosa>Originariamente inviato da TuTToWeB
è una lista linkata fatta da me...
quindi ha senso implementare iterable.
Io ti faccio un esempio di una classe iterabile che contiene un array di stringhe (il codice non è che serva realmente un granché ... giusto solo come esempio!):
codice:import java.util.*; class Prova { public static void main (String[] args) { MiaClasse mc = new MiaClasse (); for (String s : mc) System.out.println (s); } } class MiaClasse implements Iterable<String> { private String[] lista = { "ciao", "prova", "iterazione" }; public Iterator<String> iterator () { return new Iterator<String> () { int idx = 0; public boolean hasNext () { return idx < lista.length; } public String next () { if (idx < lista.length) return lista[idx++]; else throw new NoSuchElementException (); } public void remove () { throw new UnsupportedOperationException (); // remove non supportato! } }; } }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet