填充内部类中的文件

时间:2015-02-08 04:01:27

标签: java file twitter4j

我对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");
                  }
            }
        }

}

1 个答案:

答案 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,否则无法编译。