把new xxx()付给构造方法并不总是有效的
今天遇到一个错误,空指针。半天没找出问题。后来找到了。大部分的bug都是一些小错误,只是你不容易发现它。
我在类中的构造方法中new了Service方法,为了方便。
public PagingListTrainingCourseClassModel(int itemStartNumber, int pageSize, TrainingCourseClassQueryVO queryVO) {
super(itemStartNumber, pageSize, queryVO);
trainingCourseClassServiceImpl = new TrainingCourseClassServiceImpl();
}
然后在用到这个Service的地方就不用再次new了。这是我的想法。
然后我在下面这个方法用用了这个trainingCourseClassServiceImpl对象。
protected List<TrainingCourseClassVO> getPageData(int itemStartNumber, int pageSize){
...
result=trainingCourseClassServiceImpl.findAllClass((TrainingCourseClassQueryVO)getQueryVO(), start, pageSize);
....
}
报异常说是NullPointerException,然后我就查参数,都是正确非NULL的。思考了一会儿,查了一下这个trainingCourseClassServiceImpl居然还是NULL。然后就想到,哦,可能是super(itemStartNumber, pageSize, queryVO);用到了这个protected List<TrainingCourseClassVO> getPageData(int itemStartNumber, int pageSize)。
当super类调用到这个方法的时候,方法中的Service还没有实例化,因为在构造方法中它是在super方法之后的。
唉,还需要对框架熟悉一些才好。但蛋疼的zk。搞半天。