незаконная прямая ссылка в Java - PullRequest
22 голосов
/ 17 ноября 2009
 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 ]

66 голосов
/ 17 ноября 2009

«Недопустимая прямая ссылка» означает, что вы пытаетесь использовать переменную до ее определения.

В этом случае вы пытаетесь вызвать метод для wb в объявлении wb.

Workbook wb = wb.getWorkbook(...);
0 голосов
/ 20 мая 2016

Полагаю, что намерением было «статически» вызвать метод getWorkbook(), как вы и должны. Таким образом, вы должны изменить wb инициализацию члена следующим образом:

Workbook wb = Workbook.getWorkbook(...)
0 голосов
/ 21 июня 2013

Forward Illegal Reference - термин, который появляется, когда неинициализированное значение неглобальной переменной назначается глобальной переменной.

В вашем случае Workbook wb = wb.getWorkbook(new File("----")); - wb не инициализируется перед вызовом метода getWorkbook(). Чтобы избежать FIR, вы должны инициализировать wb.

0 голосов
/ 06 марта 2012

хотя getWorkbook является статическим, поэтому, соответственно, этот код должен был работать. Но здесь использование ссылки перед ее объявлением или в том же заявлении, что и объявление, вызывает ошибку «Прямая ссылка, т.е. использование ссылки перед объявлением».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...