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是一个类问这几句如何理解?

解决方案 »

  1.   

    objLst是一个list, 下面2句又是如何理解?
    List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
    List subLstRest = objLst.subList(subLstBulk.size(), lstSize);
      

  2.   

    provider obj = (Provider)objLst.get(i);
    这句什么意思 ?objLst.get(i)是取到了值,之后啦?
      

  3.   

    jdk1.5以下,没有泛型的控制,即便存放到list里的是Provider,取出来是要是要转型
    按下面的写法就不用转型
    Provider obj = new Provider();
    List<Provider> list = new ArrayList<Provider>();
    list.add(obj);
    Provider getObj = list.get(0);
      

  4.   


    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定义也给出来
      

  5.   

    看懂 谢谢楼上
    objLst是一个list, 下面2句又是如何理解? 
    List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk)); 
    List subLstRest = objLst.subList(subLstBulk.size(), lstSizeprivate static final int _psBulk = 1000;?
      

  6.   

    PreparedStatement ps,
    int psIndex = 1;
      

  7.   

    这个以前没用过,不过看了下,subList()似乎好像就是去list的一部分
    例如:
    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
      

  8.   

         * @param fromIndex low endpoint (inclusive) of the subList
         * @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 &lt; 0 || toIndex &gt; size ||
         *         fromIndex &gt; toIndex</tt>)
         */
        List<E> subList(int fromIndex, int toIndex);
      

  9.   


    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 是静态的