public void queryArea(long id, List list) {
Apanage obj = apDao.getArea(id);
if (new Long(obj.getPApanage()).equals(new Long(0))) {
list.add(id);
return;
} else {
queryArea(obj.getPApanage(), list);
list.add(id);//这句会执行吗?
System.out.println("----------ID的值为-------"+id);
}
}queryArea(obj.getPApanage(), list);这个是调用本身的方法,都去调用了,程序又转到前面去了,list.add(id);这个还能执行么?实际上我运行了,是可以执行的,不过我是想不明白.
queryArea(obj.getPApanage(), list)执行完后就会执行接下来的语句。
list.add(id);//这句会执行吗?
list.add(id);
return;
}
作为递归的终止,只要输入数据都能满足最终到达这个终止,就可以继续执行下去,顺利完成。