繁体   English   中英

Java中匿名类的限制?

[英]Limitation of anonymous classes in java?

我在使用匿名类时遇到了很多问题,例如无法执行instanceOf测试,也无法实现多个接口,所以有人可以解释一下我在Java中可以使用或不能使用匿名类吗?

匿名类在任何时候都有效

  • 您不需要引用类本身
  • 您只需要扩展一个类或实现一个接口

...但是除此之外,实际上没有任何重大限制。 这在许多情况下都可以正常工作:例如,在许多情况下,当您定义回调,侦听器等时。

匿名内部类的目的是一步扩展和实例化现有类或实现单个接口。

它的局限性可以从上面得出:

  • 只能扩展一个非最终类或实现一个接口。
  • 只能访问封闭方法的最终局部变量。 (这是由于以下事实:在调用内部类的任何方法时,常规局部变量将超出范围。)
  • 您无法定义构造函数。 (班级没有名字。)

如果需要多个接口,则可以使用本地内部类,该内部内部类与普通内部类类似,具有其自己的名称,但在方法内定义。 我必须承认,我从未见过它在实践中使用过,并且我认为很少有人会这样做,希望有人会举一个例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM