14. 10. 2011. | #11 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Izgleda da moze i sa Javom, nisam koristio iste tamo, koliko vidim mozes da imas <T extends Bazna>.
Eto Nemanja, zamrsili smo
__________________
Commercial-Free !!! Poslednja izmena od degojs : 15. 10. 2011. u 00:05. |
15. 10. 2011. | #12 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Ja ne znam moze li jednostavnije, ovako jeste malo zamrseno jer ne znam bolji nacin da uradis jednostavno T x = new T() kao u C#-u.
Kôd:
public class Bazna { private String _name; public void setName(String name) { _name = name; } public String getName() { return _name; } public<T extends Bazna> List<T> getList(Class<T> type) throws InstantiationException, IllegalAccessException { List<T> lista = new ArrayList<T>(); //T prvi = new T(); // mfff!!! oh lord, there ain't no heaven on the county road :( T prvi = type.newInstance(); prvi.setName( "Prva" ); T drugi = type.newInstance(); drugi.setName( "Druga" ); lista.add(prvi); lista.add(drugi); return lista; } } Kôd:
public class Izvedena extends Bazna {} Kôd:
Izvedena izv = new Izvedena(); try { List<Izvedena> rezultat = izv.getList(Izvedena.class); for( Izvedena i : rezultat ) { System.out.println( "Name=" + i.getName() ); } } catch (Exception e){ } Name=Prva Name=Druga
__________________
Commercial-Free !!! Poslednja izmena od degojs : 15. 10. 2011. u 01:40. |
"Hvala" degojs za poruku: |
15. 10. 2011. | #13 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Tako nešto. S tim što bi ultimativni poziv trebalo da, umesto:
Kôd:
List<Izvedena> rezultat = izv.getList(Izvedena.class); Kôd:
List<Izvedena> rezultat = Izvedena.getList();
__________________
blog |
15. 10. 2011. | #14 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 05.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
^1) Stoji, to smo vec pre razresili, u primeru sam samo gledao da nateram da profercera pa sam zaboravio na to. Tnx.
2) E to mozda nije moguce. U C# to moze bez problema (vidi primer gore u C#), ali u Javi izgleda ne moze drugacije, upravo moras da posaljes kao parametar ono Class<T> tip jer izgleda ne ide ono T prvi = new T() kako sam komentirao u kodu. Mada nisam 100% siguran.
__________________
Commercial-Free !!! Poslednja izmena od degojs : 15. 10. 2011. u 08:57. |
15. 10. 2011. | #15 | |
xyz
Grand Master
Datum učlanjenja: 25.10.2006
Poruke: 893
Hvala: 87
346 "Hvala" u 163 poruka
|
Citat:
(a la Registry) |
|
|
|