我在使用匿名类时遇到了很多问题,比如我无法执行 instanceOf 测试,也无法实现多个接口(interface),所以有人可以解释一下我在 java 中使用匿名类可以做什么或不能做什么吗?
最佳答案
匿名内部类的目的是扩展和实例化现有类或一步实现单个接口(interface)。
它的局限性可以从上面推导出来:
- 只能扩展一个非最终类或实现一个接口(interface)。
- 只能访问封闭方法的最终局部变量。 (这是因为当调用内部类的任何方法时,普通局部变量将超出范围。)
- 您不能定义构造函数。 (类(class)没有名字。)
如果你需要多个接口(interface),你可以使用局部内部类,它就像一个普通的内部类,有自己的名字,但定义在一个方法中。我不得不承认,我从未见过它在实践中使用过,而且我认为任何人都没有理由这样做,希望有人能举出一个例子。
关于java - java中匿名类的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369019/