【高级Android】Java匿名内部类有哪些限制

这个题很多人做了总结,我结合前人的,做点完善补充吧

  • 没有名字。实际上编译器会指定名字,一般是 :外部类名称 + $ + 匿名类顺序 。
  • 只能继承一个父类或实现一个接口。

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

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

  • 如果定义在非静态作用域内,会引用外部实例。这是Android 内存泄露的一个原因之一

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值