【问题标题】:illegal forward reference in javajava中的非法前向引用
【发布时间】:2009-11-17 05:20:03
【问题描述】:
 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 表中提取数据时,文件对象创建中出现非法前向引用错误。

如何解决?

【问题讨论】:

  • 如果代码中的注释是问题,你什么时候得到?从哪里?作为一个例外?在用户面前抛出非法的前向引用肯定不是 javac 的概念。如果它是一个异常,它可能与我们无权访问的 xls 文件非常相关。
  • 当我尝试编译代码时出现此错误
  • 你能显示编译器错误吗?
  • 在完成 erickson 提到的更正后,考虑将代码放入构造函数中。
  • 这能回答你的问题吗? Illegal forward Reference java issue

标签: java


【解决方案1】:

“非法前向引用”表示您试图在定义变量之前使用它。

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

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

【讨论】:

【解决方案2】:

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

Workbook wb = Workbook.getWorkbook(...)

【讨论】:

    【解决方案3】:

    Forward Illegal Reference 是一个术语,当一个未初始化的非全局变量值被分配给一个全局变量时。

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • Getworkbook 可能是静态的,但 wb 不是。您仍然无法在未初始化的引用上调用静态方法。
      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 2015-11-02
      • 2021-03-11
      相关资源
      最近更新 更多