-7

我不知道如何解决这些错误:

  1. 类或接口预期错误
  2. 包不存在
  3. 找不到标志
  4. 类型的非法开始
  5. 无法访问 java.lang

如何更好地了解我的代码中出现问题的地方?如何调试这些问题?

这是我的代码:

import java.io.*;

public class ResourcesTesterApp {
    public static void main(String[] args) {
        String s1 = readLineWithResources();
        String s2 = readLineWithFinally();
    }

    public static String readLineWithResources() {
        System.out.println("Starting readLineWithResources method.");

        try (RandomAccessFile in = new RandomAccessFile("products.ran", "r")) {
            return in.readLine();   
        }} catch (IOException e) {
            System.out.println(e.toString());
        }
    }

    public static String readLineWithFinally() {
        System.out.println("Starting readLineWithFinally method.");
        RandomAccessFile in = null;
        String s = null;

        try {
            in = new RandomAccessFile("products.ran", "r");
            s = in.readLine();
        } catch (IOException e) {
            System.out.println(e.toString());
        } finally {
            if (in != null) {
                try {
                    in.close();
                    System.out.println("RandomAccessFile closed");
                } catch (IOException e) {
                    System.out.println("RandomAccessFile " + e.getMessage());
                }
            }
        }
        return s;
    }
4

2 回答 2

3

您的问题是如何更好地理解和调试这些错误。好吧,我只能说,看看实际的错误消息输出,它通常会包含一个行号。现在您可以查看特定的代码行,看看您是否能发现问题所在。

我不知道您问题中代码的格式是否来自将其粘贴到 stackoverflow.com 的失败尝试,或者这也是您使用它的方式,但您应该正确格式化它,这将有助于发现问题。例如,当我直接在上面格式化您的代码时,您可以看到一个额外的右花括号。

一旦你有了实际的错误信息和行号等,你最好的办法是用谷歌搜索错误并尝试理解它的含义。一旦你用尽了那个途径,回到这里并制定一个具体的问题,准确地显示错误消息是什么以及你正在运行的代码。避免像您在此处所做的那样将许多问题归为一个问题。

于 2012-09-19T19:59:19.540 回答
1
  1. 这通常意味着您在方法之外编写代码。
  2. 这仅仅意味着您引用了 java 编译器找不到的包。
  3. 这意味着您编写了一个不存在的变量。
  4. 这通常意味着你没有完成一个陈述,你开始写下一个。
  5. 这个我不知道,也许更具体一点?

我强烈建议您看一下 java 教程,并按照他们的示例进行操作。您可以在http://docs.oracle.com/javase/tutorial/找到它们

于 2012-09-19T19:51:45.163 回答