2017-02-10 8 views
-1

Попытка написать метод для чтения данных из ячейки и преобразования его в строку. Метод: рНеявный супер конструктор 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 {

общественности Строка дисплея (Cell клетки) {

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

} 

}

и называется дисплеем метод. спасибо за помощь

Смежные вопросы

 Смежные вопросы