java - 接口(interface)概念的澄清

标签 java string ant static

interface A 
{
    public void printValue();
}

public class Test
{ 
    public static void main (String[] args)
    {
        A a1 = new A() { 
            public void printValue()
            {
                System.out.println("A");
            }
        };
        a1.printValue(); 
    }
}

我们无法创建接口(interface)的实例,但是这段代码中 new A() 做了什么?我见过这种类型的代码主要与比较器一起使用。请解释一下。

最佳答案

new A() {} 是实现接口(interface) A 的匿名类的实例。

如果您需要一个仅在一个地方实现接口(interface)的类的实例,因此您不想定义一个普通的类,那么这是一个非常有用的捷径。这样,您就可以在使用类的同一位置定义该类。

在您的代码示例中,它似乎不是很有用,但通常通过将匿名类实例传递给接受接口(interface)类型参数的某个方法来使用它。

关于java - 接口(interface)概念的澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26606259/

相关文章:

ant - 用 Ant 检查引用

Java 代理设置

java - 尝试将可序列化对象写入文件时出现 NotSerializedException

java - Paint 组件陷入无限循环,导致 stackoverflow 错误。为什么是这样?

java -//格式化java源码注释--------------------------------

android - android 中的无效文件 : google-play-services_lib/build. xml

C函数、网络编程

python - python中的文件名链

Python:行长可以变化的字符串格式

java - Apache ANT 在更改源代码时不会更改类文件