源代码在电脑里,不方便放出来,求大侠说说原理和如何避免就好,谢谢了
静态方法里面不能访问类中的非静态成员变量
要么先new出相应的对象,再对象.变量,要么将变量设置为static。静态方法里面不能访问类中的非静态成员变量。
两个办法,静态方法定义成非静态方法
或者在调用非静态变量的时候new一个。
比如如下代码:
class A
{
int x = 1;
static void foo()
{
x = 2;
}
}
编译则出现这个错误,修改方法1:
class A
{
int x = 1;
void foo() //去掉static
{
x = 2;
}
}
修改方法2
class A
{
int x = 1;
static void foo()
{
A a = new A();
a.x = 2;
}
}
static class A {
....
}
new一个,要不将变量设置成静态的