这个方法究竟发生了什么?

时间:2013-09-03 10:25:52

标签: java

我想创建一个方法,返回包含它们字母的按钮数组。我写了这个方法,但我不确定到底发生了什么?

public JButton [] button(){
    JButton [] button = null ;
    for(int i = 0 ;i<26 ;i++){
        String letter  = String.valueOf((char)(i + 'A'));
        button[i] = new JButton(letter);
    }
    return  button() ;
}

3 个答案:

答案 0 :(得分:6)

首先按以下方式创建数组

JButton [] button = new JButton[26];  // see null is removed.

并正确返回

return button; // removed paranthesis

答案 1 :(得分:4)

您正在以递归方式无限期地调用该方法:

return button() ;

应该是:

return button;

最好避免令人困惑地命名方法和变量。此外,您需要正确初始化按钮数组:

JButton[] button = new JButton[26];

答案 2 :(得分:1)

您将获得NullPointerException,因为您的数组未初始化:

JButton [] button = new JButton[26];

在你的return语句中,你再次调用该方法将导致无限循环。

return button; // removed paranthesis

这将返回您在循环中创建的数组。

您的代码应如下所示:

public JButton [] button(){
    JButton [] button = new JButton[26];
    for(int i = 0 ;i<26 ;i++){
        String letter  = String.valueOf((char)(i + 'A'));
        buttons[i] = new JButton(letter);
    }
    return button;
}

您的问题代码的作用:

它创建了一个JButtons数组,标有从AZ的一个字母