无法访问在Java接口中声明的常量/最终String数组值

时间:2014-02-21 14:20:30

标签: java interface nullpointerexception constants final

所以我有一个接口,它有几个常量整数声明,我可以在任何实现所述接口的类中访问它们。

我刚刚在接口中声明了一个常量字符串数组,我试图访问它,导致空指针表达式,我的数组声明如下:

public static final String[] STRINGS = {"bla","bla","bla","bla", "bla", "bla"};

在测试程序中,以下行返回NullPointerException:

System.out.println(STRINGS[1]);

所以,我的问题:这里有什么问题,或者你只能在界面中使用整数常量吗?

public class MyFrame extends JFrame implements MyInterface {
....
....
private static JCheckBox[] checkBoxes = new JCheckBox[NUMBER];
....
....
int counter = 0;
        for (JCheckBox box : checkBoxes) {
            box.setText(STRINGS[counter]);
            box.setSelected(false);
            checkBoxPane.add(box);
            counter++;
        }

 ....

上面的代码显示了测试类,在MyInterface中声明了NUMBER和STRINGS,为了简单起见,我更改了名称。

提前致谢。

2 个答案:

答案 0 :(得分:3)

默认情况下,Object数组中的元素为null。在尝试调用组件上的方法之前,请确保已初始化每个JCheckBox

for (int i=0; i < checkBoxes.length; i++) {
    checkBoxes[i] = new JCheckBox();
}

答案 1 :(得分:2)

这完全可以。

public interface Trail {
    public static final String[] STRINGS = {"bla","bla","bla","bla", "bla", "bla"};
}

实施

public class X implements Trail{
    public void get() {
        System.out.println(STRINGS[1]);
    }
}

public class TEstMain {
public static void main(String[] args) {

    X x = new X();
    x.get();
}

输出:

bla