我有一个类似这样的 java 代码:
AnObject anObject = new AnObject() {
int count;
public int creation() {
return count;
}
};
我看不懂大括号的意思。构造函数之后的类? 谢谢!
请您参考如下方法:
这是一个 anonymous inner class .
基本上,它是AnObject
的子类没有名字。
它是匿名的,因为它没有类名声明(例如 class Foo
),而且它是一个内部类,因为它是在另一个类中定义的(提供的代码中似乎没有显示。)
javac
通常会将这些类命名为带有 $
的包含类和一些数字标识符,例如 Foobar$1
-- 你可能会发现 <EnclosingClass>$1.class
编译该代码后。
(其中 <EnclosingClass>
是包含匿名内部类的类。)