Java 我应该如何检查这个布尔数组中的值是否为真,如何修改它,以及如何从静态上下文引用它?
我做了一个名为Java 我应该如何检查这个布尔数组中的值是否为真,如何修改它,以及如何从静态上下文引用它?,java,static,Java,Static,我做了一个名为rects的boolean[]。每当我输入if(rects[j]==true)或for(boolean b:rects)时,我都会收到一个错误,说非静态变量rects不能从静态上下文中引用。有人能帮我解决这个问题并解释一下这意味着什么吗 public class Risk extends Applet implements MouseListener { private boolean[] rects; public Risk() { bo
rects
的boolean[]
。每当我输入if(rects[j]==true)或for(boolean b:rects)
时,我都会收到一个错误,说非静态变量rects不能从静态上下文中引用。有人能帮我解决这个问题并解释一下这意味着什么吗
public class Risk extends Applet implements MouseListener
{
private boolean[] rects;
public Risk()
{
boolean[] rects = new boolean[42];
}
public static void main(String[] args)
{
if (rects[j] == true) //ERROR
for (boolean b : rects) //ERROR
b = false;
}
}
您正在从静态的main方法中访问布尔数组,因此您需要在main中为类Risk
创建一个对象,然后使用该对象访问数组,或者需要根据需要将数组本身声明为静态
您可以在中阅读java中的静态含义。您需要在main()
方法中创建Risk
类的实例。您不能在静态方法(在没有类实例的情况下使用)中使用类范围内的变量(需要类的实例)
是非静态的
,您在main
方法中使用它,该方法是静态的
。要克服此错误,请将布尔数组设置为静态,或者在非静态方法中使用boolean[]
数组如果这是一个小程序(看起来是),则根本没有main
方法。一旦有了合适的实例方法,就可以通过测试来检查bookean,而不是使用=
。例如:if(rects[j])
测试rects[j]
是否为true
,如果为,则分支到if
的主体中。它已经是一个布尔值
,无需使用==
来获得一个。