你對(duì)并不存在或者沒有實(shí)例化的對(duì)象進(jìn)行操作,就會(huì)報(bào)空指針異常。例如你上面的代碼中,frame并沒有在一開始進(jìn)行實(shí)例化,把frame=new JFrame();放到第一行就好了。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了譙城免費(fèi)建站歡迎大家使用!
代碼都不舍得貼上了?
你那代碼邏輯錯(cuò)誤了,你傳入文件后
public void foundJavaFile(File fileSrc)
{
if(fileSrc.isDirectory){ //是文件夾類型就遍歷文件夾
File[] files = fileSrc.listFiles();
for (File f : files) {
if (f.isDirectory()) {
list(f.getPath());
} else {
if(f.getName.endWith(.java)){
System.out.println(f.getName());
count++;
}
}
else{ //傳入的是普通文件就直接判斷是否是java文件
if(f.getName.endWith(.java)){
System.out.println(f.getName());
count++;
}
}
}
我這沒java開發(fā)環(huán)境,是文本里改的,自己測(cè)試下吧。
空指針異常產(chǎn)生的主要原因如下:itjob網(wǎng)上有例子,
(1)當(dāng)一個(gè)對(duì)象不存在時(shí)又調(diào)用其方法會(huì)產(chǎn)生異常obj.method() // obj對(duì)象不存在
(2)當(dāng)訪問或修改一個(gè)對(duì)象不存在的字段時(shí)會(huì)產(chǎn)生異常obj.method() // method方法不存在
(3)字符串變量未初始化;
(4)接口類型的對(duì)象沒有用具體的類初始化,比如:
List lt;會(huì)報(bào)錯(cuò)
List lt = new ArrayList();則不會(huì)報(bào)錯(cuò)了
當(dāng)一個(gè)對(duì)象的值為空時(shí),你沒有判斷為空的情況。你可以試著把下面的代碼前加一行代碼:
if(rb!=null rb!="")
改成:
if(rb==null);
if(rb!==nullrb!="") 或者if((“”).equals(rb))
空指針的解決辦法:
重點(diǎn)關(guān)注報(bào)錯(cuò)發(fā)生的所在行,通過空指針異常產(chǎn)生的兩條主要原因診斷具體的錯(cuò)誤。同時(shí)為了避免空指針的發(fā)生,最好在做判斷處理時(shí)將“null”或者空值放于設(shè)定的值之前。