java - 'new' 语句后的大括号有什么作用?

标签 java

我正在查看this example并想知道第一行的作用:

private SiteStreamsListener listener = new SiteStreamsListener() {

看起来您可以通过这种方式声明附加方法或重写方法。例如,我可以执行以下操作吗?

ArrayList myList = new ArrayList() {
    @Override String toString()
    {
       <my code here>
    }

    <insert new methods here>
}

最佳答案

这些大括号定义 anonymous inner class .

这使您能够覆盖正在启动的类的publicprotected 方法。您可以对任何非final 类执行此操作,但对于只能以这种方式启动的抽象类和接口(interface)最有用。

(为了限定最后一句话,可以使用 Java 8 中的 lambda 语句启动仅具有一个非默认方法的接口(interface),从而绕过了这种设计方法。)

关于java - 'new' 语句后的大括号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29438830/

相关文章:

java - 自定义过滤器不读取属性文件,该文件放置在使用该过滤器的 WEB 应用程序中

java - java spring 不会忽略 DELETE 之前发出的 OPTIONS 请求,这与 POST、GET 不同

用于发送电子邮件的 Java 框架

java - PDFBox - 覆盖正在旋转的内容

java - 自定义 JComponent 设置首选可滚动视口(viewport)大小

java - Eclipse如何监控开发人员的工作数据?

java - getMove 无法解析为变量,以为我声明了该变量,但也许其他人的眼睛可以看到它

java - 由点分隔的两部分字符串的正则表达式

java - 使用带注释的端点时,spring ws 找不到适配器

java - Spring 工具套件中的 maven-compiler-plugin :3. 7.0:compile (default-compile)