那里的大括号是做什么用的?
handler1 = new Handler() {
public void handleMessage() {
}
};
object = new Class_Name() {};
这个语法只存在于安卓上还是在Java中也有?在Java中这个语法叫什么?谢谢您的帮助。
那里的大括号是做什么用的?
handler1 = new Handler() {
public void handleMessage() {
}
};
object = new Class_Name() {};
这个语法只存在于安卓上还是在Java中也有?在Java中这个语法叫什么?谢谢您的帮助。
当您创建接口的实例引用时,会发生这种情况。例如,我想使用类创建接口Runnable
的实例,则可以通过创建匿名类来创建它,并覆盖接口的run()
方法。您可以通过查看下面提到的另一个示例来更好地理解。
Runnable runnable = new Runnable() {
public void run() {
// TODO Auto-generated method stub
}
};
new Handler() {};
以下代码可能有助于理解 实例化并返回当前类的匿名子类的引用。这与显式扩展Handler类相等,但显然需要子类的名称规定,因此它不再是匿名的。
class Main{
int a = 5;
void func(){}
void meth(){
Main ref2 = new Main() {
void func(){
System.out.println(a);
}
};
ref2.func();
}
public static void main(String[] args) {
Main mm = new Main();
mm.meth();
}
}
//5