簡體   English   中英

我的代碼中的java.lang.NullPointerException-包裝器類

[英]java.lang.NullPointerException in my code - Wrapper classes

我有4節課。 假設類為:Graphics,Manager,DataInputOutput和Files。 在Graphics中,我有一個方法可以在Manager中調用另一個方法,該方法將在DataInputOutput中調用一個方法,該方法將在Files中調用一個方法。

但是我總是在方法getCars()上得到java.lang.NullPointerException異常,並且對於類DataInputOutPut,Manager和Graphics都得到了它(異常),我知道某些事情沒有初始化或指向null,但是我只是不知道得到它在哪里。 有人可以幫我嗎?

調用流程如下:圖形--->管理器---> DataOutputInput --->文件

這是與錯誤相關的代碼:

經典圖形:

public class Graphics extends JFrame {

private Manager manager;

public Graphics() {
manager = new Manager();


(..)

tablePanel.setData((manager.getCars()));

}

班級經理;

public class Manager {

DataInputOutput io = new DataInputOutput();

    public List<Car> getCars()
    {
        return io.getCars();
    }
}

Class DataInputOutput:

public class DataInputOutput{

private Database database;
private Files files;

public DataInputOutput()
{
    database = Database.getInstance();
    Files files = new Files();
}

     public List<Car> getCars()
     {
         return files.getCars();
     }
}

類文件:

public class Files {

private List<Car> carList;

public Files(){
    carList = new ArrayList<Car>();
}


public void addCar(Car sta) {
        carList.add(sta);
}

public List<Car> getCars() {
        return Collections.unmodifiableList(carList);
}

這是堆棧打印:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at controller.DataInputOutput.getCars(DataInputOutput.java:59)
at controller.Manager.getCars(Manager.java:41)
at view.Graphics.<init>(Graphics.java:125)
at view.App$1.run(App.java:27)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

 public DataInputOutput() { database = Database.getInstance(); Files files = new Files(); } 

Files files = new Files();

沒有設置this.files

它定義了一個局部變量,使this.files的值為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM