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();
}
我试过这种方式,但它不起作用。
无论我做什么,它总是告诉我这是一个静态的背景。
在我看来,我在某个地方犯了一个可怕的错误。
答案 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的实例并使用它来调用该方法。