java - 这个语法叫什么? `new Type() { ... }`

标签 java

我知道 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/

相关文章:

java - 在 Jenkins 上通过 Java Web Start 启动从代理时出现问题

java - 可以在 Java 中基于 JSSE 的 SSL 套接字上并行执行读/写吗?

java - LinkedList 在 add() 上产生巨大的延迟

java - 读取证书错误

intellij-idea - 为什么 IntelliJ 为简单的 hello world 程序从 JDK 1.6 导入额外的库?

java - 如何使用 numberPicker 获取 setFormatter 的值?

java - 类加载器问题 Tomcat 6 javagent

java - 如何避免在 Java 中重复 for 循环?

Java 8 日期/时间 (JSR-310) 类型与 Spring Data MongoDB 的映射

java - 为什么除非使用事务,否则删除表在 SQLServer 中不起作用?