最近看了看《Thinking in Java》深有感触,把以前的迷惑解开了不少,今天就Java的null和""及ArrayList讲解下,希望对迷惑于此的朋友们有所帮助。
一。代码:
二。讲解
上述的代码中有两个地方可以测试。
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的判断。
三。小小讲解,希望对大家理解上有所帮助。(^_^ :idea: )
一。代码:
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的判断。
三。小小讲解,希望对大家理解上有所帮助。(^_^ :idea: )