Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中从一个方法到另一个方法的调用字符串_Java_String_Methods_Call - Fatal编程技术网

Java中从一个方法到另一个方法的调用字符串

Java中从一个方法到另一个方法的调用字符串,java,string,methods,call,Java,String,Methods,Call,对不起,如果这是一个简单的问题,但我已经尝试了很长一段时间,现在是否可以调用字符串从一个方法到另一个 下面,我想从方法fileName调用字符串fileName到fileOutputToFile。我知道我可以传递它,但我想从fileOutputToFile调用它 public class outputToFile { public void fileName(){ String fileName = "Test"; } public void f

对不起,如果这是一个简单的问题,但我已经尝试了很长一段时间,现在是否可以调用字符串从一个方法到另一个

下面,我想从方法
fileName
调用字符串
fileName
fileOutputToFile
。我知道我可以传递它,但我想从
fileOutputToFile
调用它

public class outputToFile {

    public void fileName(){

         String fileName = "Test";

    }

    public void fileOutputToFile(String hex) throws Exception{

        String fileInfo = hex;

        try {
                PrintWriter out = new PrintWriter(new BufferedWriter(
                                         new FileWriter("myfile.txt", true)));
                out.print(fileInfo);
                out.print("\n");
                out.close();
            }catch (IOException e){
            }
    }
}

调用另一个方法中的局部变量是不可能的——这是一个范围问题

因此,无法从
fileOutputToFile
方法的
fileName()
方法中检索
fileName
变量

调用
fileName
方法时,“检索”文件名的一种方法是
返回文件名:

public String getFileName(){
     String fileName = "Test";
     return fileName;
}
(注意:我冒昧地将该方法重命名为更接近Java中命名标识符的约定的名称。)

然后,在
fileOutputToFile
方法中,可以调用
getFileName
方法来检索
fileName
的值


应该注意的是,在这种情况下,实际上最好只使用字段(实例或类变量),而不是调用单独的方法来检索文件名。考虑到该方法只是返回一个常量
字符串
,字段可以保存该值:

public class OutputToFile {
    // Here, we use a class variable.
    private static final String FILE_NAME = "Test";

    public void fileOutputToFile(String hex) {
        // use FILE_NAME field here.
    }
}

所有变量的作用域通常限于它们所在的{}封闭空间。因此,如果在一个方法中创建变量,除非传入变量,否则在另一个方法中无法访问该变量

好消息是您可以创建一个类中所有方法共享的类级变量

public class OutputToFile {

    private String fileName = "Test";

    public void fileName() {
           System.out.println(fileName);
           fileName = "Something Different"
    }

    public void fileOutputToFile(String hex) {
           System.out.println(fileName);
           // Do other things with it
    }
}

如果我理解正确,您希望从fileName()返回一个字符串


目前,fileName()的实现没有任何作用。必须添加return语句才能返回值:“return“Test”

请澄清,您再次尝试执行的是什么操作?