java - 跨 2 个类共享数据

标签 java inheritance

我必须在两个类之间共享一个 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 变量由您创建的 UpdateProcessStepOneFrameUpdateProcessStepTwoFrame 的实例拥有。如果您想在 ApplicationDataPool 的所有实例之间共享 thisContact,您必须将其定义为 static。这意味着该变量将由类拥有,而不是其实例。

protected static String[] thisContact;

关于java - 跨 2 个类共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468607/

相关文章:

java - 无法从 java 中的 Date 对象获取真实日期

java - 子对象可以与派生类的其余部分分开分配吗

java - Java Class类的getMethod函数是如何工作的?

java - Android ArrayList,如何获取ListView的onClick

java - 使用 JDBC 的多数据库连接(如 DB2、MySQL 等)的设计方法

java - JAVA求线段长度

c++ - 在模板层次结构中继承类型声明

java - 在Java中交换文本文件中的两行

css - 更改现有 CSS 阴影的方向

Perl:如何确保从基类内部访问时调用重写的方法