为什么它有3个错误???我犯了什么错误?

时间:2015-08-19 11:40:53

标签: java arrays string char filereader

gq

}

输出:

FileApi.java:11:错误:预期         class public FileApi(String s)抛出异常 FileApi.java:11:错误:方法声明无效;需要返回类型         class public FileApi(String s)抛出异常 FileApi.java:68:错误:解析时到达文件末尾}

2 个答案:

答案 0 :(得分:2)

构造函数的语法错误。它应该是这样的:

public FileApi (String s) throws Exception {
    super(s);
    pw = new PrintWriter(fw = new FileWriter(s, true));
}

(那时的class关键字是不正确的,并且它使解析器混乱太多,以至于它无法对你做错了什么做出正确的解释。)

虽然我们处于错误的主题,但将方法或构造函数声明为抛出Exception是一个重大错误。如果某些事情被宣布为"抛出你想象的任何异常,那就很难做出理智的异常处理"。

而且:

    pw = new PrintWriter(fw = new FileWriter(s, true));
IMO,只是贪得无厌。如果你把它写成两个语句,那就更具可读性了:

    fw = new FileWriter(s, true);
    pw = new PrintWriter(fw);

最后,您已将PrintWriter声明为:

    PrintWriter pr;

什么时候应该是:

    PrintWriter pw;

答案 1 :(得分:0)

构造函数不应包含class关键字。

更改

class public FileApi (String s) throws Exception
{
    super(s);
    pw = new PrintWriter(fw = new FileWriter(s, true));

}

public FileApi (String s) throws Exception
{
    super(s);
    pr = new PrintWriter(fw = new FileWriter(s, true));

}