有没有办法实例化一个匿名内部class?
Is there any way to instantiate an anonymous inner class?
有没有办法从 main 方法访问匿名 class 的方法?
如果是这样,访问这种方法的语法是什么?
class Demo {
void show() {
System.out.println("i am in show method of super class");
}
}
class Flavor1Demo {
// An anonymous class with Demo as base class
static Demo d = new Demo() {
void show() {
super.show();
System.out.println("i am in Flavor1Demo class");
}
};
public static void main(String[] args){
d.show();
}
}
Anonymous 类 在您需要它们的同时被实例化。他们没有自己的名字。如果您使用 Swing 或小程序进行编码,那么 ActionListeners or EventHandlers
实际上是匿名实例化的
如果您至少有一个匿名实例(对象)class,乍一看似乎是:
class Demo {
void show() {
System.out.println("i am in show method of super class");
}
}
public class Flavor1Demo {
// An anonymous class with Demo as base class
static Demo d2 = new Demo() {
void show() {
super.show();
System.out.println("i am in Flavor1Demo class");
}
};
public static void main(String[] args){
d2.show();
try {
Demo v = d2.getClass().newInstance();
System.out.println("Object created"+v.getClass().getTypeName()); // Canonical is null
} catch (InstantiationException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我很惊讶,匿名cls 似乎是静态类型,不需要对父对象的隐藏引用?好像没有。
有没有办法从 main 方法访问匿名 class 的方法? 如果是这样,访问这种方法的语法是什么?
class Demo {
void show() {
System.out.println("i am in show method of super class");
}
}
class Flavor1Demo {
// An anonymous class with Demo as base class
static Demo d = new Demo() {
void show() {
super.show();
System.out.println("i am in Flavor1Demo class");
}
};
public static void main(String[] args){
d.show();
}
}
Anonymous 类 在您需要它们的同时被实例化。他们没有自己的名字。如果您使用 Swing 或小程序进行编码,那么 ActionListeners or EventHandlers
实际上是匿名实例化的
如果您至少有一个匿名实例(对象)class,乍一看似乎是:
class Demo {
void show() {
System.out.println("i am in show method of super class");
}
}
public class Flavor1Demo {
// An anonymous class with Demo as base class
static Demo d2 = new Demo() {
void show() {
super.show();
System.out.println("i am in Flavor1Demo class");
}
};
public static void main(String[] args){
d2.show();
try {
Demo v = d2.getClass().newInstance();
System.out.println("Object created"+v.getClass().getTypeName()); // Canonical is null
} catch (InstantiationException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我很惊讶,匿名cls 似乎是静态类型,不需要对父对象的隐藏引用?好像没有。