Ошибка: не удается найти символ - ошибка компиляции Java

Я уже давно смотрю на это, и я уверен, что решение прямо передо мной, но я просто слеп к этому. Кто-то хочет указать, почему мой int дает мне ошибку?

Класс CacheDownloader:

  public static void main(String[] args) {
    String strFilePath = "./version.txt";
    try
    {
      FileInputStream fin = new FileInputStream(strFilePath);
     DataInputStream din = new DataInputStream(fin);
     int i = din.readInt();
       System.out.println("int : " + i);
       din.close();
    }
    catch(FileNotFoundException fe)
    {
      System.out.println("FileNotFoundException : " + fe);
    }
    catch(IOException ioe)
    {
      System.out.println("IOException : " + ioe);
    }
  }

    private final int VERSION = i; 

Ошибка:

CacheDownloader.java:54: error: cannot find symbol
        private final int VERSION = i;
                                    ^
  symbol:   variable i
  location: class CacheDownloader

2 ответа

Решение

Я объявлен в main, private final int VERSION находится за пределами main. Переместите его внутрь main или объявите i глобальным.

static int i=0;
public static void main(String[] args) {
    String strFilePath = "./version.txt";
    try
    {
      FileInputStream fin = new FileInputStream(strFilePath);
      DataInputStream din = new DataInputStream(fin);
      i = din.readInt();
      System.out.println("int : " + i);
      din.close();
    }
    catch(FileNotFoundException fe)
    {
       System.out.println("FileNotFoundException : " + fe);
    }
    catch(IOException ioe)
    {
       System.out.println("IOException : " + ioe);
    }
}
private final int VERSION = i;

Вы должны объявить свой int i перед try-catch блок. Кроме того, вы должны объявить свою константу внутри вашего main метод:

  public static void main(String[] args) {
    String strFilePath = "./version.txt";
    int i;
    try
    {
      FileInputStream fin = new FileInputStream(strFilePath);
      DataInputStream din = new DataInputStream(fin);
      i = din.readInt();
      System.out.println("int : " + i);
      din.close();
    }
    catch(FileNotFoundException fe)
    {
      System.out.println("FileNotFoundException : " + fe);
    }
    catch(IOException ioe)
    {
      System.out.println("IOException : " + ioe);
    }
    final int VERSION = i; 
  }
Другие вопросы по тегам