У меня есть статический метод, который устанавливает переменную:
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.
, и это вызвано java.lang.NullpointerException atэто место for (String playerName: playersNames)
.
Моя программа не видит palyersNames?
Первый раз, когда я ссылаюсь на класс таким образом: SelectPartnerGUI.setParameters(players);
.И в моем классе у меня есть метод setParameters
перед проблемным статическим блоком.Итак, почему этот статический блок вызывается до вызова метода setParameters
?