繁体   English   中英

从另一个文件传递变量,然后在同一个 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,即使我返回 hdr_dir。 但是,如果我通过将“setprintHDR”打印到命令中来检查一切似乎都很好,它会返回“目录”

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

由于您想在另一个对象中使用更新的值(基本上是尝试在多个对象之间共享值),因此您应该将变量 hdr_dir 保留为static Static 与实例变量:差异?

您当前使用该变量作为实例一,因此如果一个 object 更新该值,它将仅特定于该 object。 对于您的主要 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();
    }
}

output 是

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM