从另一个文件传递变量,然后在同一 class 中将变量用于另一个方法

Passing variable from another file and then use variable within to another method within same class

我正在尝试调用另一个 class 中的变量到第二个 java 文件

public class selectFile {
    public void hdrFile(){
        String hdrName = "directory";
        readImage sendVari = new readImage();

        sendVari.setprintHDR(hdrName);
    }
}

public class readImage {
    private String hdr_dir;

    public static void main(String[] args){
        selectFile call_vari = new selectFile();
        call_vari.hdrFile();
    }

    public void setprintHDR(String hdr_dir){
        this.hdr_dir = hdr_dir;
    }

    public String getprintHDR(){
        return hdr_dir;
    }

    public void anotherMethod(){
        System.out.println(getprintHDR());
    }
}

我这样做是因为我想在第三个文件的第二个中使用“anotherMethod”方法,但是当我在第二个 java 文件中通过将其打印到终端进行测试时“anotherMethod”无法打印任何 hdr_dir 甚至我 return hdr_dir。但是,如果我通过将它打印到命令来检查“setprintHDR”,一切看起来都很好,它 returns “directory”

public class Main {
    public static void main(String[] args){
        readImage call_vari = new readImage();
        call_vari.anotherMethod();
    }
}

因为你想在另一个对象中使用更新后的值(基本上是试图在多个对象之间共享值),你应该将变量 hdr_dir 保持为 static . Static vs Instance Variables: Difference?

您当前将该变量用作实例一,因此如果一个对象更新了该值,它将仅特定于该对象。 对于您的主要 class、

public class Main {
    
//    private String hdr_dir;

    public static void main(String[] args){
        int res = 0; 
         selectFile call_var = new selectFile();
         call_var.hdrFile();
        readImage call_vari = new readImage();
//        call_var.anotherMethod();
//        call_vari.setprintHDR("printHDR");
        call_vari.anotherMethod();
    }
}

输出为

value of hdr_dir is passed is  -------directory // doing some console logging 
value of hdr_dir assigned is  -------directory
directory