Java 如何更改另一个类的变量?
我在类“MainActivity”中有一个名为modeNr的变量,它受到保护,因此应该可以从包中访问它,但是每当我试图从同一个包中的类中修改它时,它就会给出错误:“非静态字段‘modeNr’不能从静态上下文引用”。我使用以下行更改变量: MainActivity.modeNr=1Java 如何更改另一个类的变量?,java,android,static,protected,non-static,Java,Android,Static,Protected,Non Static,我在类“MainActivity”中有一个名为modeNr的变量,它受到保护,因此应该可以从包中访问它,但是每当我试图从同一个包中的类中修改它时,它就会给出错误:“非静态字段‘modeNr’不能从静态上下文引用”。我使用以下行更改变量: MainActivity.modeNr=1 有没有关于问题是什么以及如何纠正的想法?您正在尝试将非静态成员从静态函数更改为静态成员。您还需要使该变量成为静态的,或者需要创建该类的对象。 让我们假设 class Test { int node = 0; sta
有没有关于问题是什么以及如何纠正的想法?您正在尝试将非静态成员从静态函数更改为静态成员。您还需要使该变量成为静态的,或者需要创建该类的对象。 让我们假设
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
}
}
对不起,我不能评论
您的modeNr不是静态变量。您需要将其定义为:
protected static String modeNr="ddddd"
由于您是通过MainActivity.modeNr对其进行修改的,因此该变量必须是静态变量。要消除该错误,您需要将变量定义为静态变量
static String modeNr="soemthing"
要访问静态变量,可以通过静态成员或对象访问它。只需创建
modeNr
variablestatic
我认为log
非静态字段“modeNr”不能从静态上下文中引用
正在解释一切。是的,实例化MainActivity。注释中的答案和下面的答案将有助于实现您的目标。但这种方法是完全不切实际的。你想达到什么目标?我相信有更好的方法做任何事情。