我对Java很陌生,我甚至不确定这个标题是否有意义。 无论如何我如何获得对onStatus内部文件的访问权限? 我只是试图写入该函数中的文件,因此在下面的代码中" T_file.length()" " T_file"无法解决。
public static void main (){
foo("file_name");
}
foo(String fileName)
{
try{
final File T_file = new File (fileName);
final FileWriter fw = new FileWriter(fileName);
final BufferedWriter bw = new BufferedWriter (fw);
}catch (IOException e){}
StatusListener listener = new StatusListener(){
public void onStatus(Status status){
if (T_file.length() > 100){
System.out.println ("I have access here");
}
}
}
}
答案 0 :(得分:0)
" T_file.length()" " T_file"无法解决
这是因为T_file
不在onStatus
的范围内。您在T_file
方法中声明了foo
,但随后创建了一个新的StatusListener
,其中您重新定义了onStatus
,但编译器仍将StatusListener
视为另一个类。
解决方法是在类中声明变量globally
,然后访问它,指定Class.this.T_file
的名称。这是一个例子:
public class Foo {
File T_file;
public static void main (){
new Foo("file_name");
}
Foo(String fileName)
{
T_file = new File (fileName);
StatusListener listener = new StatusListener(){
public void onStatus(Status status){
if (Foo.this.T_file.length() > 100){
System.out.println ("I have access here");
}
}
};
}
}
此示例将编译。
请注意,我在;
的末尾添加了StatusListener
,否则无法编译。