已经有大括号但得到语法错误,插入“}”来完成类主体

时间:2014-06-18 17:38:35

标签: java

所以我有这段代码:

package pages;

import org.openqa.selenium.WebDriver;

public class HomePage extends SiselPage {
    public HomePage(WebDriver driver) {
        super(driver);
        driver.get("http://example.com");
    }

    this.pageTitle = "Site";
}

对我来说这看起来很好,但它不会编译。它给了我两个语法错误,一个在第9行,一个在第12行。第9行说"令牌上的语法错误'}',{在此令牌之后预期"第12行说"语法错误,插入'}'完成ClassBody。我尝试过从头开始重写课程,但是没有用。 但是,这会编译:

package pages;

import org.openqa.selenium.WebDriver;

public class HomePage extends SiselPage {
    public HomePage(WebDriver driver) {
        super(driver);
        driver.get("http://example.com");
    }{

    this.pageTitle = "Site";
}}

所以我只是使用它或什么?这对我来说似乎很奇怪。我所有其他类的格式都是这样的,它们都可以工作。我正在使用eclipse。 谢谢!

3 个答案:

答案 0 :(得分:3)

this.pageTitle = "Site";

此语句需要是可执行块(构造函数,方法,静态初始化程序块)的一部分

在第二种情况下,你有初始化程序块,它类似于静态初始化程序块,但没有静态关键字,它是成员字段初始化程序

答案 1 :(得分:1)

您的代码按结构化方式将this.pageTitle = "Site"; 放在方法正文和类正文中。而是在方法体内移动它或将其更改为字段。该解决方案记录如下:

public class HomePage extends SiselPage
{
    public HomePage(WebDriver driver)
    {
        super(driver);
        driver.get("http://example.com");
        this.pageTitle = "Site";
    }
 }

答案 2 :(得分:0)

this.pageTitle = "Site";必须在构造函数或方法中。