java - 无法访问另一个类的方法

标签 java methods static

我正在调用DataComparison()

public class SteganographyGUI {

    ...

    DataComparison dataComp;
    dataComp = new DataComparison();

}

public int getLSB(){
    String x = fileChooser1.getSelectedFile().getAbsolutePath();
    x = x.substring(x.length() - 10, x.length() - 9);
    return Integer.parseInt(x);
}

当满足某些条件时。我的问题是,当我尝试使用 gui.getLSB() 访问 getLSB 时

public class DataComparison {

    public static SteganographyGUI gui;

    ...


    public DataComparison(){

        lsb = gui.getLSB(); 

    }
    public static void main(String[] args) {
        gui = new SteganographyGUI();
        gui.setVisible(true);
    }

出现错误 - 线程“AWT-EventQueue-0”java.lang.NullPointerException 中出现异常

我该如何解决这个问题?

最佳答案

您尝试在 DataComparison 类中调用 getLSB(),但没有为其提供 SteganographyGUI 类的引用。因此,更改以下行:

 DataComparison dataComp;
 dataComp = new DataComparison();

至:

DataComparison dataComp;
dataComp = new DataComparison(this);

并更改构造函数:

public DataComparison(SteganographyGUI guiRef){
    gui = guiRef;
}

关于java - 无法访问另一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29858556/

相关文章:

python - 如何在 Django 模型上定义任何一年的月份范围?

c++ - 这个结构是如何被引用的?什么是冒号(:) at the bottom?

c++ - 静态类数据成员和构造函数

java - intellij 场景生成器错误未打开 fxml 文件已解决

java - JUnit 5 测试模板和扩展 : Accessing TestTemplateInvocationContext?

java - Playframework + Akka : how to avoid excuting scheduled tasks executed when shutdown application

c++ - 你能复制一个方法的内容到 StringStream 中吗?

methods - 你最成功的敏捷软件开发方法是什么?

php - mock 无法在测试方法中调用我的方法

java - 在 Java 中获取 JRadioButton 的名称