我编写了一个数据驱动脚本,由一个使用Jexcel API读取的Excel文档提供,现在想将我的变量分成一个单独的类,但是我收到了#34;无法对非静态进行静态引用字段"错误。
你能否就我如何做到这一点提出建议,这是一个'变量的样本。课程如下所示;
//jexcel sheet/cell reference
Cell btcell0 = sheet.getCell(6, 2);
//variable name required to be static
String tNbuyName = btcell0.getContents();
示例I已经看到哪个允许我引用另一个产生&#34的类的变量;不能对非静态字段进行静态引用"误差;
public static final String tNbuyName = ..............
答案 0 :(得分:1)
您不能将静态值分配给静态类字段。获取值的方法应该是静态方法,或者字段tNbuyName应该是非静态的。
将tNbuyName设置为非静态或使用静态实用程序方法获取值并将其分配给tNbuyName。
答案 1 :(得分: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无法解析为变量
这是文件结构......