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
的主体中。它已经是一个
布尔值
,无需使用
==
来获得一个。