2014-10-29 83 views
0

我得到一個「無法從靜態上下文中引用的非靜態方法」 - 我相信這基本上意味着該對象沒有被創建。我究竟做錯了什麼?Java解析csv並創建對象

public void loadData() { 
    String csvFile = "/data/patientList.csv"; 
    BufferedReader br = null; 

    try { 

     br = new BufferedReader(new FileReader(csvFile)); 
     br.readLine(); 
     String line1 = null; 
     while ((line1 = br.readLine()) != null) { 
      String[] patient = line1.split(","); 
      int bedNum = Integer.parseInt(patient[0]); 
      Patient patient1 = new Patient(bedNum, patient[1], patient[2], patient[3], patient[4], 
        RESPIRATORY_RATE, HEART_RATE, SYSTOLIC, SPO2); 

這裏拋出錯誤,例如:

patientNameField.setText(Patient.getFistName()); 
+1

哪行有錯誤:

如下更改您的密碼?問題中的錯誤意味着您正在從靜態函數內調用成員函數(沒有「this」可用)。但是我無法從您發佈問題的代碼中知道。沒有足夠的信息。 – jwismar 2014-10-29 23:27:15

+0

無論我嘗試使用Patient類對象,我都會收到錯誤消息。哪些信息會有幫助? – ClaaziX 2014-10-29 23:44:46

回答

1

此錯誤聽起來像你這樣嘗試:

public static void main(String args[]) { 
    loadData(); 
} 

public void loadData() { /* method code */ } 

這是不行的,因爲該方法loadData是不是靜態的,需要一個被調用的對象。

public class MyClass { // you can name your class like you want 
    public static void main(String args[]) { 
     final MyClass instance = new MyClass(); //assuming there is a non-argument constructor 
     instance.loadData(); // call "loadData" on a specifc instance of MyClass 
    } 

    public void loadData() { /* method code */ } 
} 
+0

感謝您的反饋...我有一點玩耍,我現在有這個 PatientJFrame instance = null; try { instance = new PatientJFrame(); (IOException異常){ } catch(IOException ex){ Logger.getLogger(PatientJFrame.class.getName()).log(Level.SEVERE,null,ex); } instance.loadData(); 儘管我嘗試使用Patient對象,但仍然遇到錯誤。 – ClaaziX 2014-10-29 23:47:51

+1

@ClaaziX你會得到完全相同的錯誤信息?或者是另一個? – Tom 2014-10-29 23:52:16

+0

這是相同的錯誤消息,無論我嘗試從病人類中獲取對象變量 - 它只是不創建對象...我認爲:/ – ClaaziX 2014-10-29 23:54:29