2017-02-10 142 views
-1

試圖編寫一個方法從單元讀取數據並將其轉換爲字符串。 方法: p默認構造函數未定義隱式超級構造函數getdata()。必須定義一個明確的構造函數

ublic class getStringValue { 

    public getStringValue(Cell cell) { 

    } 
    String display() 
    { 
     Cell cell = null; 
     DataFormatter df = new DataFormatter(); 
     String value = df.formatCellValue(cell); 
     return value; 
    } 


} 
calling the method in another class 

public class acessUser extends getdata { 

    void login(String filepath ,String filename ,String sheetname) throws IOException{ 

    File file = new File(filepath + "\\"+ filename) ; 
    FileInputStream datafile = new FileInputStream(file); 
    HSSFWorkbook wb = new HSSFWorkbook (datafile); 
    Sheet sh = wb.getSheet(sheetname); 

    int rownum = sh.getLastRowNum()+1; 
    int colnum = sh.getRow(0).getLastCellNum(); 

    String [][] data = new String [rownum][colnum]; 

    for (int i=0 ; i< rownum ; i++) 
    { 
    Row row = sh.getRow(i); 
      for (int j =0 ; j < colnum ; j ++) 
      { 
      Cell cell = row.getCell(j); 
      getStringValue gt = new getStringValue(cell); 
      String value = gt.display(); 
      //java.lang.String value = cell.getStringCellValue(); 
      data[i][j]=value; 
     System.out.println(value); 

     //String ui = data[i][j]; 

    } 
    } 
    } 
    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 

     acessUser n = new acessUser(); 
     n.login("A:\\selenium", "selenium.xls", "sheet1"); 

    } 

} 

錯誤: - 例外在線程 「主要」 java.lang.Error的:未解決的問題,編譯: 隱超構造的GetData()是未定義默認構造函數。必須定義一個明確的構造函數

回答

1

您將acessUser定義爲getdata的子類,並且您沒有爲該類定義構造函數acessUser()。然後,您嘗試通過執行new acessUser();來創建該類的實例。由於沒有定義構造函數,因此將調用父類的構造函數,即getdata()。但似乎這個構造函數是未定義的。

順便說一下,該慣例是使用大寫字母的第一個字母的大寫字母的名字。另外,你的display()方法對我來說沒有任何意義。您將null分配給單元格,然後執行String value = df.formatCellValue(cell); ...我建議您退後一步,在深入研究此代碼之前深入思考您的解決方案以及Java的工作原理。

0

是它是不正確的與構造,所以我改變的代碼 公共類向GetStringValue {

公共字符串顯示(單元電池) {

DataFormatter df = new DataFormatter(); 
    String value = df.formatCellValue(cell); 
    return value; 

} 

}

並稱爲顯示方法。感謝您的幫助

相關問題