关于FilenameFilter的一个简单例子,但总是有空指针异常,哪位大侠帮忙看看吧

public class Demo {

public static void main(String[] args) {
    File dir=new File("D:\\test");

    JavaTest filter=new JavaTest("java");

    File[] files=dir.listFiles(filter);

    for(File a:files){
        System.out.println(a.getName());
    }

}

}
class JavaTest implements FilenameFilter{
private String str;
public JavaTest(String str){
str="."+str;
}
public boolean accept(File dir, String name) {
return name.endsWith(str);
}

}

Constructor please use the object's parameter.

Could fix it as following:
public JavaTest(String str){
     this.str="."+str;
}

构造函数中的变量写法不规范,当形参与类属性一致时,需要在属性前面加this,用于区分指定的是哪个变量,楼主上面的代码直接用str="."+str;是不妥的,这样在运行到此段代码时,str指的就是构造函数传过来的变量,因此本身类属性str的值则为null,改成这样就可以了:this.str="." + str;