获取另一个类的变量的值

时间:2014-01-08 23:45:22

标签: java static getter

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();
}

我试过这种方式,但它不起作用。

无论我做什么,它总是告诉我这是一个静态的背景。

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

3 个答案:

答案 0 :(得分:1)

您需要拥有该类的实例才能在非静态上下文中调用该方法。当你说class name-dot-method时,它试图调用一个静态方法。

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

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

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

答案 1 :(得分:1)

getterClass.function()是静态函数,类的功能,你需要先创建一个实例才能正确使用它

getterClass variable = new getterClass(); //variable.width initialized in constructor?
this.width=variable.getwidth(); 

或传递参数

之类的实例
public void setWidth(getterClass variable){
this.width=variable.getwidth();
}

答案 2 :(得分:0)

您将getWidth()视为静态方法,只使用类名称而不使用类的实例来调用它。您应该将public int getWidth()更改为public static int getWidth(),或者创建类getterClass的实例并使用它来调用该方法。