如何更改另一个类的变量?

时间:2015-05-01 14:36:59

标签: java android static protected non-static

我在班级中有一个变量" MainActivity"使用名称modeNr,它受到保护,因此它应该可以从包中访问,但是每当我尝试从同一个包中的类更改它时,它会给出错误:"非静态字段' modeNr& #39;不能从静态上下文中引用"。我使用以下行来改变变量:

MainActivity.modeNr = 1;

关于问题是什么以及如何纠正它的任何想法?

4 个答案:

答案 0 :(得分:0)

您正尝试从静态功能更改非静态成员。你需要使那个变量静态,或者需要创建该类的对象。 我们假设,

class Test {
 int node = 0;
 static int node1 =10; 

}

class changeNode {

public static void changeNode(){
 new Test().node = somevalue;
//or you need to make node static and change like this
Test.node1 = some value 

}
}

答案 1 :(得分:0)

抱歉,我无法发表评论。

您的modeNr不是静态变量。您需要将其定义为:

{{1}}

因为您通过MainActivity.modeNr修改它,所以变量必须是一个静态变量。

答案 2 :(得分:0)

要消除该错误,您需要将变量定义为静态。

static String modeNr="soemthing"

要访问静态变量,可以通过静态成员或通过对象访问它。

答案 3 :(得分:0)

只需将modeNr变量static

我认为日志Non-static field 'modeNr' cannot be referenced from a static context正在解释一切。

相关问题