【问题标题】:Where do I find more info about such implicit class implementation我在哪里可以找到有关此类隐式类实现的更多信息
【发布时间】:2017-03-15 13:34:33
【问题描述】:

我发现了一些这样的代码

public class Test {
 static void myTest() {
    TestInterface test = new TestInterface() {

        @Override
        public void test1() {
            // TODO Auto-generated method stub
        }

        @Override
        public boolean isOK() {
            // TODO Auto-generated method stub
            return false;
        }
    };
    if (test.isOK()) test.test1();
  }
}

interface TestInterface {
  void test1();
  boolean isOK();
}

如果它不仅仅是一个骨架,它编译得很好并且可能会起作用。 我知道它创建了一个接口的隐式实现和该类的一个实例。 尝试使用“java”“隐式”“接口”搜索这个并没有给我更多关于这个结构的背景信息。我缺少哪个搜索词?

【问题讨论】:

  • 感谢@Berger 希望您喜欢回答简单的问题;)也感谢您提供的链接。
  • @datafiddler 你可能应该将伯杰的回答标记为接受。
  • 它是显式的,而不是隐式的。

标签: java interface


【解决方案1】:

这称为匿名类:Anonymous classes

正如表达式所暗示的,它们没有名称,并且用于声明和实例化一个同时扩展另一个类(或实现接口)的类。

匿名类使您的代码更简洁。他们 使您能够同时声明和实例化一个类。

这些类对于声明它们的方法来说是本地的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-13
    • 2022-01-26
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多