该方法应该创建尽可能多的按钮, 因为它被赋予字符串然后返回所选的字符串。 Eclipse说我的return语句不返回String。 我如何为它编写return语句呢?
private static String getActionDialog(String... actions) {
JRadioButton[] buttons = new JRadioButton[actions.length];
ButtonGroup group = new ButtonGroup();
for (int i = 0; i < actions.length; i++) {
buttons[i] = new JRadioButton(actions[i]);
group.add(buttons[i]);
}
buttons[0].setSelected(true);
Object[] message = buttons;
Object[] options = { "OK", "Cancel" };
int n = JOptionPane.showOptionDialog(null, message,
"title", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
if (n == JOptionPane.OK_OPTION) {
if (buttons[0].isSelected()) {
return actions[0];
}
if (buttons[1].isSelected()) {
return actions[1];
}
} else {
return null;
}
}
答案 0 :(得分:4)
如果
中的条件会发生什么if (n == JOptionPane.OK_OPTION) {
解析为true
并且
if (buttons[0].isSelected()) {
return actions[0];
}
if (buttons[1].isSelected()) {
return actions[1];
}
解析为true
?在这种情况下,您的方法没有return
语句。您需要在所有执行路径中返回一些东西。
添加
return null;
或方法末尾的return
语句。