public int getwidth() {

    return width;
}

public int gethight() {

    return hight;
}


我在另一堂课中有这种方法。我现在需要在另一个课程中使用它们来获取此信息。问题是:尽管(在我看来)它不是静态上下文,但它不断告诉我这是静态上下文,因此它不起作用。

void setWidth()  {
     /* getterclass is the class where the getwidth method is in */
     this.width = getterClass.getwidth();
}


我以这种方式尝试过,但是没有用。

不管我做什么,它总是告诉我这是一个静态上下文。

在我看来,我在某个地方犯了一个可怕的错误。

最佳答案

您需要具有该类的实例才能在非静态上下文中调用该方法。当您说类名-点方法时,这是在尝试调用静态方法。

您需要创建类的实例,或者接受一个作为参数。

void setWidth()
{
    GetterClass instance = new GetterClass();
    this.width = instance.getwidth();
}


要么

void setWidth(GetterClass instance)
{
    this.width = instance.getwidth();
}

07-24 21:53