Java匿名内部类的限制

  • 没有名字。

    实际上编译器会指定名字,一般是 :外部类名称 + $ + 匿名类顺序 。

  • 只能继承一个父类或实现一个接口。

    匿名类由父类或接口直接派生,Java语法不允许同时继承父类和实现接口,kotlin可以。

  • 父类是非静态的类型,则需父类外部实例来初始化。

  • 如果定义在非静态作用域内,会引用外部实例。

  • 只能使用外部作用域内的final变量。

    匿名内部类会持有一份该变量的引用,为了防止变量变化引起歧义,故要求final保持不变。

  • 创建时只有单一方法的接口可用lambda表达式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容