如何使用vararg从函数返回String

时间:2013-12-16 04:00:43

标签: java arrays string variadic-functions jradiobutton

该方法应该创建尽可能多的按钮, 因为它被赋予字符串然后返回所选的字符串。 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;
        }
}

1 个答案:

答案 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语句。