Java 有没有一种简单的方法可以在Android中创建内部类的对象?

Java 有没有一种简单的方法可以在Android中创建内部类的对象?,java,android,Java,Android,如果我希望创建一个OnlyFolderFilter对象,我会在PublicParFun中放入一些实用函数和类 我必须编写代码newpublicparfun.newonlyfolderfilter,有没有一种简单的方法可以在Android中创建内部类的对象 public class PublicParFun { public static void ClearIcon(Context myContext) { NotificationManager notificatio

如果我希望创建一个OnlyFolderFilter对象,我会在PublicParFun中放入一些实用函数和类

我必须编写代码newpublicparfun.newonlyfolderfilter,有没有一种简单的方法可以在Android中创建内部类的对象

public class PublicParFun {

    public static void ClearIcon(Context myContext) {
        NotificationManager notificationManager = (NotificationManager)myContext.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
        notificationManager.cancel(myContext.getResources().getInteger(R.integer.NotificationID));
    }

    public class OnlyFileFilter implements FilenameFilter{
        boolean isExcludeHidden;

        public OnlyFileFilter(boolean isExcludeHidden){
            this.isExcludeHidden=isExcludeHidden;
        }

        @Override
        public boolean accept(File dir, String name) {
            File f=new File(dir, name);

            if (isExcludeHidden) {
                return f.isFile() && (f.isHidden() == false);
            }else{
                return f.isFile();
            }
        }
    }


    public class OnlyFolderFilter implements FilenameFilter{
        boolean isExcludeHidden;

        public OnlyFolderFilter(boolean isExcludeHidden){
            this.isExcludeHidden=isExcludeHidden;
        }

        @Override
        public boolean accept(File dir, String name) {
            File f=new File(dir, name);

            if (isExcludeHidden) {
                return f.isDirectory() && (f.isHidden() == false);
            }else{
                return f.isDirectory();
            }
        }
    }
}
例如,一个好的解决方案是将内部类转换为静态内部类

没有外部类的实例,普通内部类就无法存在,因此需要调用new PublicParFun.new only文件夹过滤器,从而有效地创建两个对象而不是一个

当使用静态内部类时,您可以有效地声明内部类不需要外部类及其字段的实例,并且可以自己存在

您没有使用外部类的字段,这使得内部类非常适合静态内部类。 这两种类型之间的区别不仅在于实例化代码:

使用双构造函数,每次需要新的内部类时,都会创建两个对象。 普通内部类的实例在其外部对象上保留引用,因此只要有对内部对象的引用,就保持外部对象处于活动状态。 另外一点是可读性。在阅读代码时,如果应用了static关键字,您可以立即看出内部类没有修改或读取外部类实例的状态。
让OnlyFileFilter成为一个静态类,然后调用new PublicParFun。OnlyFileFilter…谢谢!但是静态类不是一个好方法,因为静态类有很多限制静态类有很多限制是什么让你这么想的?如果嵌套类不依赖包装类中的任何实例字段或方法,那么它实际上应该是静态的。