java中的非法转发引用

import java.io.*; import jxl.*; class Xlparsing { Workbook wb =wb.getWorkbook(new File( "C:\\Documents and Settings\\kmoorthi\\Desktop\\ak\\new.xls")); // Illegal forward reference What it means Sheet st = wb.getSheet(0); Cell cell1 = st.getCell(0,0); String a1 = cell1.getContents(); public static void main(String s[]) { System.out.println(new Xlparsing().a1); } } 

嗨当我尝试从excel工作表中提取数据非法前向引用错误来自文件对象创建。

怎么解决这个?

“非法转发引用”表示您在定义变量之前尝试使用该变量。

在这种情况下,您尝试在wb的声明中调用wb上的方法。

 Workbook wb = wb.getWorkbook(...); 

Forward Illegal Reference是将未初始化的非全局变量值分配给全局变量时出现的术语。

在你的情况下Workbook wb = wb.getWorkbook(new File("----")); – 在调用getWorkbook()方法之前, wb未初始化。 为了避免FIR,你应该初始化wb

我想这是打算’静态’调用getWorkbook()方法,就像你应该的那样。 因此,您应该将wb成员初始化更改为:

 Workbook wb = Workbook.getWorkbook(...) 

虽然getWorkbook是静态的,所以相应地,这段代码应该有效。 但是在这里,在声明之前或与声明相同的声明中使用引用会导致错误“正向引用,即在声明之前使用引用”。