所以我之前写了这段代码,没有方法和参数传递,而且效果很好!
但是一旦我开始使用方法和传递参数使其更有条理,我就会遇到空指针异常。为什么我会收到这样的错误?
import javax.swing.JFrame;
import javax.swing.JLabel;
public class test {
private static JLabel label;
public static void main(String[] args){
initializeLabel();
initializeFrame(label);
}
private static void initializeLabel(){
JLabel label = new JLabel();
label.setText("hi");
}
private static void initializeFrame(JLabel label){
JFrame frame = new JFrame();
frame.add(label);
frame.setVisible(true);
}
}
最佳答案
问题是这个函数:
private static void initializeLabel(){
JLabel label = new JLabel(); // This creates a new variable named label
label.setText("hi");
}
您正在尝试初始化 this.label
,但您只是在创建一个新变量并为其赋值。将其更改为:
private static void initializeLabel(){
label = new JLabel(); // or this.label = new JLabel();
label.setText("hi");
}
关于java - Java 中的空指针异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046178/