- import java.util.ArrayList;
- public class testNull
- {
- /**
- * @param args
- */
- public static void main ( String[] args )
- {
- testNull a=new testNull();
- ArrayList<String> l=a.getTest("");
- if(l==null)
- {
- System.out.println("is null");
- }
- else
- {
- System.out.println("is not null");
- }
- }
- public ArrayList<String> getTest(String item)
- {
- ArrayList<String> list=new ArrayList<String>();
- if(item==null || "".equals(item))
- {
- return null;
- }
- else
- {
- return list;
- }
- }
- }
import java.util.ArrayList;
public class testNull
{
/**
* @param args
*/
public static void main ( String[] args )
{
testNull a=new testNull();
ArrayList<String> l=a.getTest("");
if(l==null)
{
System.out.println("is null");
}
else
{
System.out.println("is not null");
}
}
public ArrayList<String> getTest(String item)
{
ArrayList<String> list=new ArrayList<String>();
if(item==null || "".equals(item))
{
return null;
}
else
{
return list;
}
}
}
二。讲解
上述的代码中有两个地方可以测试。
1.在public ArrayList<String> getTest(String item)方法中,如果if(item==null || "".equals(item))改成if(item==null )则会输出"is not null"
如果加上,则会输出"is null",这说明null和""是不一样的。
2.if(item==null)则会输出"is not null",但为什么会输出不是空呢?因为这句代码“ArrayList<String> list=new ArrayList<String>();”,事实上,这句代码的意思已经代表在内存区域分配了内存,所以return list是不为空(null)的。但反过来说,如果把ArrayList<String> list=new ArrayList<String>();改成ArrayList<String> list=null;的话则会输出"is null"
3.我们在用ArrayList和Iterator的时候,希望注意null的判断。
""翻译过来是零长度字符串
一个什么都不是,一个是String类实例