java - java中匿名类的限制?

标签 java class nested

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

最佳答案

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

它的局限性可以从上面推导出来:

  • 只能扩展一个非最终类或实现一个接口(interface)。
  • 只能访问封闭方法的最终局部变量。 (这是因为当调用内部类的任何方法时,普通局部变量将超出范围。)
  • 您不能定义构造函数。 (类(class)没有名字。)

如果你需要多个接口(interface),你可以使用局部内部类,它就像一个普通的内部类,有自己的名字,但定义在一个方法中。我不得不承认,我从未见过它在实践中使用过,而且我认为任何人都没有理由这样做,希望有人能举出一个例子。

关于java - java中匿名类的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369019/

相关文章:

javascript - 检查数组对象中的输出是否有 'error' 并在 'error' 中显示消息

javascript - 如何从键字符串构建嵌套属性

java - 本地日期 : parse MM-yyyy

java - Windows 64 上的 DICOM 图像到 BufferedImage

java - 解析 XML 以获取深层嵌套数据

java - 处理/Java 中的 "Enclosing type"错误

function - 在 Scala 中从其他类导入函数

java - OpenCV 中 NativeCameraView 和 JavaCameraView 的区别

java - Cassandra:从 Row 复制到 BoundStatement

Python 从同一包中的文件导入 __init__.py 中的类