第一,关于函数为List时的情况,为什么在函数内List的size不为0,而在调用函数里,则为0呢?
不太明白List参数传递时的问题。。。
package com;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
public class TestMain {
/**
* main()
* 2010-3-25,下午10:00:10
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();
test(list);
System.out.println(list.size());
}
public static void test(List list){
Session session = HibernateSessionFactory.getSession();
session.beginTransaction();
list = session.createSQLQuery(" select id,name from body " ).list();
System.out.println("==="+list.size());
session.close();
}
}
第二,JDK源文件中AbstractMap 的方法 public Set keySet(),没太明白代码结构。。。。。
public Set keySet() {
if (keySet == null) {
keySet = new AbstractSet() {
public Iterator iterator() {
return new Iterator() {
private Iterator> i = entrySet().iterator();
public boolean hasNext() {
return i.hasNext();
}
public K next() {
return i.next().getKey();
}
public void remove() {
i.remove();
}
};
}
public int size() {
return AbstractMap.this.size();
}
public boolean contains(Object k) {
return AbstractMap.this.containsKey(k);
}
};
}
谢谢。