在Java中从一种方法调用String到另一种方法

时间:2011-02-27 03:30:47

标签: java string methods call

抱歉,如果这是一个简单的问题,但我已经尝试了一段时间,现在可以从一种方法调用字符串到另一种方法......

下面我想从方法fileName调用字符fileNamefileOutputToFile。我知道我可以传递它,但我想从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){
            }
    }
}

3 个答案:

答案 0 :(得分:2)

无法调用另一种方法中的局部变量 - 这是范围问题。

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

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

public String getFileName(){
     String fileName = "Test";
     return fileName;
}

(注意:我已经冒昧地将方法重命名为更接近Java中命名标识符的约定。)

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


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

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.
    }
}

答案 1 :(得分:0)

所有变量的范围通常仅限于它们所在的{}附件。因此,如果您在一个方法中创建变量,则除非您将其传入,否则无法在其他方法中访问该变量。

好消息是你可以创建由类中所有方法共享的类级变量!

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
    }
}

答案 2 :(得分:0)

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

目前,您对fileName()的实现不执行任何操作。您必须添加一个return语句来返回一个值:'return“Test”'