最近在做项目中碰到需要返回一个空的模板,但是模板需要dateSet或者对象数组来创建,
对象数组创建时,会先查去summary页面去查询出来结果然后,再在模板类中调用对象数组,
------------------------------------------------------------------------------------
开始考虑时候,
EnGrade aEnGrade[] = (EnGrade[])request.getAttribute("aEnGrade");
if(aEnGrade.length>0)
{
aEnGrade[0]=null;
}
然后模板类调用这个 aEnGrade[0] 对象创建,结果报NPE。
---------------------------------------------------------------------------------------
然后同事说直接new 一个空的数组就可以解决。
EnGrade aEnGrade[] = new EnGrade[0];
--------------------------------------------------------------------------------------
new 一个对象出来,比如SomeClass sc=new SomeClass();这个时候已经为sc这个对象分配了指向 new SomeClass() 所创建的内存空间。即对这个对象sc进行了实例化。而SomeClass sc=null,则sc对象未进行实例化,是一个空的对象,未能指向任何内存空间。
这个是百度找到的比较确切的答案。
------------------------------------------------------------------------------------
看来需要再一次好好看看TIJ了。