首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:应为<identifier>

错误:应为<identifier>
EN

Stack Overflow用户
提问于 2013-04-11 02:50:24
回答 3查看 1.1K关注 0票数 0

当我试图编译Report.java时,我在第6行得到一个错误,说:error: <identifier> expected aClient.setClientName("Michael"); with and箭头指向第一个括号。

代码语言:javascript
复制
public class Client {

    private String _clientName;

    public String getClientName(){
        return _clientName;
    }
    public void setClientName(String clientName){
        _clientName = clientName;
    }

}
public class Report {

    Client aClient = new Client();
    //ClientLawn aClientLawn = new ClientLawn();

    aClient.setClientName("Michael");
    //aClientLawn.setLawnWidth(10);
    //aClientLawn.setLawnLength(10);

    public void output(){
        System.out.println(aClient.getClientName());
        //System.out.println(aClientLawn.calcLawnSize());
    }

}

我还想说明一下,我对Java是个新手,所以请温文点。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-11 02:53:22

这一行应该放入一个初始化程序块中:

代码语言:javascript
复制
{
    aClient.setClientName("Michael");
}

所以它会在创建aClient之后执行。

这里的代码针对Report的每个实例运行。不幸的是,你不能给它设置参数。如果要这样做,请将此块放入构造函数中:

代码语言:javascript
复制
public Report (String clientName) {
    aClient.setClientName(clientName);
    //aClientLawn.setLawnWidth(10);
    //aClientLawn.setLawnLength(10);
}
票数 3
EN

Stack Overflow用户

发布于 2013-04-11 02:52:31

使用instance initialization block

代码语言:javascript
复制
public class Report {

    Client aClient = new Client();
    //ClientLawn aClientLawn = new ClientLawn();
    {
        aClient.setClientName("Michael");
        //aClientLawn.setLawnWidth(10);
        //aClientLawn.setLawnLength(10);
    }
    ...
}
票数 3
EN

Stack Overflow用户

发布于 2013-04-11 04:04:28

正如其他人所指出的,您不能在方法之外执行代码,因此以下代码行是非法的:

代码语言:javascript
复制
Client aClient = new Client();
aClient.setClientName("Michael");

它们需要包装在一个方法中,比如类的构造函数:

代码语言:javascript
复制
public class Report {
    public Report() {
        Client aClient = new Client();
        aClient.setClientName("Michael");
    }

    // ....
}

看起来您希望这段代码是可执行的,在这种情况下,您希望将所有这些放在一个main方法中,如下所示:

代码语言:javascript
复制
public class Report {
    public static void main(String... args) {
        Client aClient = new Client();
        aClient.setClientName("Michael");
        System.out.println(aClient.getName());
    }
}

然后,您可以编译并执行Report类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15934012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档