我必须在两个类之间共享一个 String[]
。一个类设置数组,另一个类获取数组。我做了四节课。一个包含父类(super class)级别的数组,并且在子类中访问该数组。一个类包含 main()
他们在这里。
ApplicationDataPool.java
public class ApplicationDataPool extends JFrame {
String[] thisContact;
public ApplicationDataPool() {
super("Update Record");
}
public String[] getThisContact() {
return thisContact;
}
public void setThisContact(String[] thisContact) {
this.thisContact = thisContact;
}
}
UpdateProcessStepOneFrame.java
public class UpdateProcessStepOneFrame extends ApplicationDataPool {
public UpdateProcessStepOneFrame() {
String[] something = { "fname", "lname" };
setThisContact(something);
UpdateProcessStepTwoFrame step2 = new UpdateProcessStepTwoFrame();
step2.setVisible(true);
}
}
UpdateProcessStepTwoFrame.java
public class UpdateProcessStepTwoFrame extends ApplicationDataPool{
public UpdateProcessStepTwoFrame(){
String[] theContact = getThisContact();
//Here is the problem
//Exception in thread "main" java.lang.NullPointerException
System.out.println(theContact.length);
}
}
问题:每当我在任何地方访问数组时,Java 都会抛出一个 NullPointerException
。为什么会这样。我该如何纠正?
最佳答案
您的 thisContact
变量由您创建的 UpdateProcessStepOneFrame
或 UpdateProcessStepTwoFrame
的实例拥有。如果您想在 ApplicationDataPool
的所有实例之间共享 thisContact
,您必须将其定义为 static
。这意味着该变量将由类拥有,而不是其实例。
protected static String[] thisContact;
关于java - 跨 2 个类共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468607/