2017-01-18 68 views
1

我寫了一個數據驅動的腳本,通過一個Excel文檔中使用Jexcel API讀取喂,現在要我的變量分離成單獨的類,但我收到「無法對靜態字段進行靜態引用」錯誤。硒的webdriver - 引用非靜態 - jexcel字符串作爲靜態

你可以建議,我怎麼可以這樣做,則下方顯示的「變量」類的樣本;

//jexcel sheet/cell reference 
Cell btcell0 = sheet.getCell(6, 2); 
//variable name required to be static 
String tNbuyName = btcell0.getContents(); 

例子我已經看到了哪些可以讓我引用另一個類的變量,它會產生「無法對非靜態字段進行靜態引用」的錯誤;

public static final String tNbuyName = .............. 

回答

1

您不能將靜態值分配給靜態類字段。要從中獲取值的方法應該是靜態方法,或者字段tNbuyName應該是非靜態的。

可以將tNbuyName設置爲非靜態或使用靜態實用程序方法來獲取值並將其分配給tNbuyName。

0

嗨,大家好感謝回來給我,我的這種認識越來越清晰,但我還是有點渾濁....

這是我使用的是從「ExcelUtils」類中的方法

public static void setExcelFile(String Path, int Sheetname) throws Exception { 


    try { 
     Workbook workb = Workbook.getWorkbook(new File(Path)); 
     Sheet = workb.getSheet(Sheetname); 
    } catch (Exception e) { 
     throw (e); 
    } 
} 


public static String getCellData(int ColNum, int RowNum) throws Exception{ 

    try { 
     Cell = Sheet.getCell(ColNum, RowNum); 
     String CellData = Cell.getContents(); 
     return CellData; 

    } catch (Exception e) { 
     return ""; 
    } 
} 

繼在「ResultsMap」類,我爲我的變量分配值......

public class ResultsMap { 

public static void WriteTo() throws Exception { 

String tNbuyName = ExcelUtils.getCellData(6, 2); 
String tNbuyPass = ExcelUtils.getCellData(6, 3); 
String tAccName = ExcelUtils.getCellData(6, 4); 
String tCasNo = ExcelUtils.getCellData(6, 5); 
etc, etc...... 

,但現在在AdminBUser類我要訪問的變量在ResultsMap中,但我該怎麼做呢?

作爲一個例子,我已嘗試的System.out.println(ResultsMap.WriteTo(tNbuyName);

但該消息被顯示,告知tNbuyName不能被解析爲一個可變

這是文件結構爲......

Image of package explorer

相關問題