【发布时间】:2010-03-22 12:08:30
【问题描述】:
我有一个设置变量的静态方法:
static String[] playersNames;
public static void setParameters(String[] players) {
playersNames = players;
}
然后我有一个静态块:
static {
JRadioButton option;
ButtonGroup group = new ButtonGroup();
// Wright a short explanation of what the user should do.
partnerSelectionPanel.add(new JLabel("Pleas select a partner:"));
// Generate radio-buttons corresponding to the options available to the player.
// Bellow is the problematic line causing the null pointer exception:
for (String playerName: playersNames) {
final String pn = playerName;
option = new JRadioButton(playerName, false);
option.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt) {
partner = pn;
}
});
partnerSelectionPanel.add(option);
group.add(option);
}
partnerSelectionPanel.add(label);
// Add the "Submit" button to the end of the "form".
JButton submitButton = new JButton("Submit");
submitButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt) {
partnerSelected();
}
});
partnerSelectionPanel.add(submitButton);
}
编译器不会抱怨任何事情,但是当我尝试执行代码时会遇到问题。在这个地方SelectPartnerGUI.setParameters(players);我有:
线程“main”中的异常 java.lang.ExceptionInitializerError.
这是由 for (String playerName: playersNames) 这个地方的 java.lang.NullpointerException 引起的。
我的程序看不到 palyersNames 吗?
我第一次这样引用类:SelectPartnerGUI.setParameters(players);。在我的课堂上,我在有问题的静态块之前有 setParameters 方法。那么,为什么在调用setParameters 方法之前调用这个静态块呢?
【问题讨论】:
标签: java variables static visibility