下面我想从方法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){
}
}
}
答案 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”'