如何理解provider obj = (Provider)objLst.get(i);

lilinew 2009-08-03 01:27:13
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是一个类

问这几句如何理解?
...全文
79 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzj167 2009-08-03
  • 打赏
  • 举报
回复
恩,自己懂得查是最好
whj3102 2009-08-03
  • 打赏
  • 举报
回复

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

lilinew 2009-08-03
  • 打赏
  • 举报
回复
* @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 < 0 || toIndex > size ||
* fromIndex > toIndex</tt>)
*/
List<E> subList(int fromIndex, int toIndex);
wzj167 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liyihongcug 的回复:]
看懂 谢谢楼上
objLst是一个list, 下面2句又是如何理解?
List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
List subLstRest = objLst.subList(subLstBulk.size(), lstSize

private static final int _psBulk = 1000;


[/Quote]
这个以前没用过,不过看了下,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
lilinew 2009-08-03
  • 打赏
  • 举报
回复
PreparedStatement ps,
int psIndex = 1;
lilinew 2009-08-03
  • 打赏
  • 举报
回复
看懂 谢谢楼上
objLst是一个list, 下面2句又是如何理解?
List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
List subLstRest = objLst.subList(subLstBulk.size(), lstSize

private static final int _psBulk = 1000;

whj3102 2009-08-03
  • 打赏
  • 举报
回复

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定义也给出来
wzj167 2009-08-03
  • 打赏
  • 举报
回复
jdk1.5以下,没有泛型的控制,即便存放到list里的是Provider,取出来是要是要转型
按下面的写法就不用转型
Provider obj = new Provider();
List<Provider> list = new ArrayList<Provider>();
list.add(obj);
Provider getObj = list.get(0);
lilinew 2009-08-03
  • 打赏
  • 举报
回复
provider obj = (Provider)objLst.get(i);
这句什么意思 ?objLst.get(i)是取到了值,之后啦?
wzj167 2009-08-03
  • 打赏
  • 举报
回复
这个很简单估计没人愿意说,主要是不知道怎么和你说,你先说说你哪句不懂,还是都不懂
lilinew 2009-08-03
  • 打赏
  • 举报
回复
objLst是一个list, 下面2句又是如何理解?
List subLstBulk = objLst.subList(0, _psBulk * (lstSize / _psBulk));
List subLstRest = objLst.subList(subLstBulk.size(), lstSize);

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧