【发布时间】:2016-01-11 14:20:51
【问题描述】:
我知道匿名类没有任何名称。 它在 Simple 类中使用。但除此之外,Anonymous 类与我们使用的 Simple 类有何不同?
【问题讨论】:
-
它们的不同之处在于没有名称。你有什么问题?
标签: java class anonymous-class
我知道匿名类没有任何名称。 它在 Simple 类中使用。但除此之外,Anonymous 类与我们使用的 Simple 类有何不同?
【问题讨论】:
标签: java class anonymous-class
匿名类与本地类相同,只是它们没有名称。
它们是表达式而不是声明。因此它将成为语句的一部分(即创建对象的语句,因此我们在匿名类定义之后放置一个半列)。如果您只需要使用一次匿名类,则可以使用它。
要点:
您不能在其中声明构造函数。
可以访问封闭类的所有类级变量,并且只能访问最终局部变量。
不能声明静态初始值设定项,但也可以有声明为 final 的静态变量。
在 Java 8 中,lambda 具有与匿名类相似的语法,如果您需要无状态实现,它们可以替换匿名类。
【讨论】:
它们主要用于 UI 程序中以处理事件。如果您的类/接口具有一些功能,那么您无需为其创建新文件,而是将其嵌入现有类中。你可以在https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html找到详细的描述。
【讨论】: