当我尝试编译以下代码时,它会产生以下错误:

找不到标志
符号:可变飞机

该错误是由最后一条语句产生的。

为什么在声明之后找不到RandomAccessFile对象?

谢谢!

public static void main(String[] args)
{

    try
    {
        RandomAccessFile airplanesFile = new RandomAccessFile("airplanesFile.ran", "rw");
    }
    catch (FileNotFoundException fnfe)
    {
        fnfe.printStackTrace();
    }

    airplanesFile.writeUTF("Test");
}

最佳答案

这与变量作用域有关。 airplanesFile在try块的大括号内声明。当编译器触及try块的右括号时,它超出范围。

在try语句之前声明RandomAccessFile airplanesFile = null;,然后将RandomAccessFile airplanesFile = new RandomAccessFile("airplanesFile.ran", "rw");更改为airplanesFile = new RandomAccessFile("airplanesFile.ran", "rw");,您的问题应该消失了。

08-04 15:06