我发现了一些像这样的代码
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"来谷歌这个"隐" "接口"没有给我更多关于这个结构的背景信息。我缺少哪个搜索词?
答案 0 :(得分:1)
这称为匿名类:Anonymous classes。
正如表达式所暗示的那样,它们没有名称,并且用于声明AND实例化同时扩展另一个类(或实现接口)的类。
匿名类使您可以使代码更简洁。他们 使您能够同时声明和实例化一个类。
这些类是声明它们的方法的本地。