java - List of Objects, how to set list[index].setter in for loop? -
good evening everyone.
have little problem list in java. let's start beggining. here method returns list query in hql :
public list<praktykientity> getpracticeofstudent(long nralbumu) { query query = em.createquery("select p praktykientity p p.nralbumu=?1"); query.setparameter(1, nralbumu); list list = query.getresultlist(); if (!list.isempty()) { return list; } else { return null; } }
then helper class :
public class praktykainfo { public long idpraktykistudenckiej; //idofstudentpractice public szablonypraktykentity szablonpraktyki; //templateofpractice public praktykodawcyentity praktykodawca; //employer public statusyentity statuspraktyki; //statusofpractice public list<kierunkistudiowentity> kierunek; //course public typypraktykentity typpraktyki; //typeofpractice public lataakademickieentity rokakademicki; //academicyear public list<studencientity> student; public list<opiekunowiepraktykentity> opiekunpraktyki; //tutor public list<koordynatorzypraktykentity> koordynatorpraktyki; //coordinator public adresyentity adrespracodawcy; //employer's address public porozumieniaentity porozumienie; //agreement}
and want - list<praktykientity>
first method, initialize new helper list<praktykainfo>
, iterate through it, set correct object first list , return it. @ first thought list.get(i) work im getting error "index out of bounds". i've heard list.add , .set don't know how use them. here method. , know info.get(i) has nothing that's why encountering error "index out of bounds"
public list<praktykainfo> getpracticeofstudent(long nralbumu) { list<praktykientity> list = ipraktykidao.getpracticeofstudent(nralbumu); list<praktykainfo> info = new arraylist<praktykainfo>(); //system.out.println(list.size()); for(int = 0; i<list.size(); i++) { praktykientity practice = ipraktykidao.getrow(list.get(i).getidpraktykistudenckiej()); if(practice !=null) { info.get(i).setidpraktykistudenckiej(practice.getidpraktykistudenckiej()); info.get(i).setszablonpraktyki(iszablonypraktykdao.gettemplate(practice.getidszablonu())); info.get(i).setpraktykodawca(ipraktykodawcydao.findemployer(practice.getidpraktykodawcy())); info.get(i).setstatuspraktyki(istatusydao.getstatus(practice.getidstatusu())); info.get(i).setkierunek(ikierunkistudiowdao.getcourseinfo(practice.getidkierunku())); info.get(i).settyppraktyki(itypypraktykdao.gettypeoftraineeship(practice.getidtypupraktyki())); info.get(i).setrokakademicki(ilataakademickiedao.getyearofcourse(practice.getidrokuakademickiego())); if(practice.getnralbumu() !=null) { info.get(i).setstudent(istudencidao.getstudentinfo(practice.getnralbumu())); } info.get(i).setopiekunpraktyki(iopiekunowiepraktykdao.gettutorinfo(practice.getidopiekunapraktyk())); info.get(i).setkoordynatorpraktyki(ikoordynatorzypraktykdao.getcoordinatorinfo(practice.getidkoordynatorapraktyk())); info.get(i).setadrespracodawcy(iadresydao.findbyidadresu(practice.getidadresu())); if(practice.getidporozumienia() !=null) { info.get(i).setporozumienie(iporozumieniadao.getagreement(practice.getidporozumienia())); } } else { return null; } } return info; }
you indexoutofboundsexception
because calling info.get(i)
on empty list.
you can modify code this:
public list<praktykainfo> getpracticeofstudent(long nralbumu) { list<praktykientity> list = ipraktykidao.getpracticeofstudent(nralbumu); list<praktykainfo> info = new arraylist<praktykainfo>(); //system.out.println(list.size()); for(int = 0; i<list.size(); i++) { praktykientity practice = ipraktykidao.getrow(list.get(i).getidpraktykistudenckiej()); if(practice !=null) { praktykainfo pi = new praktykainfo(); pi.setidpraktykistudenckiej(practice.getidpraktykistudenckiej()); pi.setszablonpraktyki(iszablonypraktykdao.gettemplate(practice.getidszablonu())); pi.setpraktykodawca(ipraktykodawcydao.findemployer(practice.getidpraktykodawcy())); pi.setstatuspraktyki(istatusydao.getstatus(practice.getidstatusu())); pi.setkierunek(ikierunkistudiowdao.getcourseinfo(practice.getidkierunku())); pi.settyppraktyki(itypypraktykdao.gettypeoftraineeship(practice.getidtypupraktyki())); pi.setrokakademicki(ilataakademickiedao.getyearofcourse(practice.getidrokuakademickiego())); if(practice.getnralbumu() !=null) { pi.setstudent(istudencidao.getstudentinfo(practice.getnralbumu())); } pi.setopiekunpraktyki(iopiekunowiepraktykdao.gettutorinfo(practice.getidopiekunapraktyk())); pi.setkoordynatorpraktyki(ikoordynatorzypraktykdao.getcoordinatorinfo(practice.getidkoordynatorapraktyk())); pi.setadrespracodawcy(iadresydao.findbyidadresu(practice.getidadresu())); if(practice.getidporozumienia() !=null) { pi.setporozumienie(iporozumieniadao.getagreement(practice.getidporozumienia())); } info.add(pi); } else { return null; } } return info; }
Comments
Post a Comment