java中的非法转发引用

时间:2009-11-17 05:20:04

标签: 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表中提取数据时,非法前向引用错误会出现在文件对象中。

如何解决这个问题?

4 个答案:

答案 0 :(得分:65)

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

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

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

答案 1 :(得分:0)

转发非法引用是指将未初始化的非全局变量值分配给全局变量时出现的术语。

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

答案 2 :(得分:0)

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

Workbook wb = Workbook.getWorkbook(...)

答案 3 :(得分:-1)

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