for (int i = 0; i < objLst.size(); i++) {
provider obj = (Provider)objLst.get(i);
ps.setLong(psIndex++, obj.getId());
ps.setString(psIndex++, obj.getName());
ps.setLong(psIndex++, obj.getLocationId());objLst.是一个list, provider是一个类问这几句如何理解?
provider obj = (Provider)objLst.get(i);
ps.setLong(psIndex++, obj.getId());
ps.setString(psIndex++, obj.getName());
ps.setLong(psIndex++, obj.getLocationId());objLst.是一个list, provider是一个类问这几句如何理解?
List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
List subLstRest = objLst.subList(subLstBulk.size(), lstSize);
这句什么意思 ?objLst.get(i)是取到了值,之后啦?
按下面的写法就不用转型
Provider obj = new Provider();
List<Provider> list = new ArrayList<Provider>();
list.add(obj);
Provider getObj = list.get(0);
for (int i = 0; i < objLst.size(); i++) { //一个List objLst,通过for循环进行遍历
provider obj = (Provider)objLst.get(i); //取出objLst每一个元素,是一个Provider对象
ps.setLong(psIndex++, obj.getId()); //ps是一个自定义的对象,它有三个方法setLong、setString、setLong,其中前后两个setLong第二个参数应不同类型,属于多态中的重载;psIndex应为在for外定义的一变量,用于为所有取出的Provider对象属性逐一编号;这一句的作用是;从Provider对象obj中取出Id属性值(obj.getId()),并用psIndex来编号,然后通过ps.setLong方法将该值赋予ps对象;
ps.setString(psIndex++, obj.getName());
ps.setLong(psIndex++, obj.getLocationId());
由于ps对象并非在for中生成,所以for执行完后,得到的是objLst中最后一个Provider对象的id,name,locationId,psIndex应为(objLst.size()*3)+初始值-1
你应该将ps定义也给出来
objLst是一个list, 下面2句又是如何理解?
List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
List subLstRest = objLst.subList(subLstBulk.size(), lstSizeprivate static final int _psBulk = 1000;?
int psIndex = 1;
例如:
List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
List subList = list.subList(0, 2);
for(int i=0;i<subList.size();i++){
System.out.println(subList.get(i));
}
得出的结果是1,2
* @param toIndex high endpoint (exclusive) of the subList
* @return a view of the specified range within this list
* @throws IndexOutOfBoundsException for an illegal endpoint index value
* (<tt>fromIndex < 0 || toIndex > size ||
* fromIndex > toIndex</tt>)
*/
List<E> subList(int fromIndex, int toIndex);
List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
// lstSize / _psBulk: 得商,是个不小于0的整数,如2540/1000=2;
//_psBulk * (lstSize / _psBulk)),是一个长度
//所以上句的意思就是取objLst中从0到_psBulk * (lstSize / _psBulk))个元素,作为子链赋予subLstBulk ;
//lstSize 应该是objLst的长度,你看下程序中是否有int lstSize =objLst.size();
List subLstRest = objLst.subList(subLstBulk.size(), lstSize );
//取objLst中的子链,是objLst取subLstBulk 后的部分
//这两句是取了objLst的上下两部分
private static final int _psBulk = 1000;
//static 声明_psBulk 是类变量
//final 声明_psBulk 是静态的