我知道 Java 允许您在初始化类变量时对变量的类型进行欺骗。沿着:
SomeType foo = new SomeType() {
{
this.fooField = 12345;
}
@Override public void someMethod() {
throw new ReallyWeirdException();
}
};
这将创建一个实例变量 foo
,其中 someMethod()
与通常的 SomeType
具有不同的语义,而 fooField
被初始化为一个不同于其正常默认值的值。
但是 new Type() { ... }
语法叫什么?
最佳答案
匿名内部类。
你在你的代码中(内部)定义了一个没有名字(匿名)但继承自 SomeType 的类(class),然后覆盖它的一些方法和属性。
关于java - 这个语法叫什么? `new Type() { ... }`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8239932/