所以我有一个接口,它有几个常量整数声明,我可以在任何实现所述接口的类中访问它们。
我刚刚在接口中声明了一个常量字符串数组,我试图访问它,导致空指针表达式,我的数组声明如下:
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,为了简单起见,我更改了名称。
提前致谢。
答案 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