想知道如何调用公共(public) m 方法吗?
public class Test1 {
public static void main(String[] args) {
Test1 test = new Test1() {
public void m() {
System.out.println("m");
}
};
}
}
最佳答案
我不相信你可以。您必须创建一个接口(interface)或子类。 (嗯,好吧,这可能不是真的。你可以通过反射(reflection)来做到这一点。)
例如,像这样(构建后通过 test.m()
调用):
public class Test1 {
public static void main(String[] args) {
SubTest1 test = new SubTest1() {
public void m() {
System.out.println("m");
}
};
test.m();
}
private static abstract class SubTest1 extends Test1 {
public abstract void m();
}
}
或者像这样,在构建过程中发生的地方:
public class Test1 {
public static void main(String[] args) {
SubTest1 test = new SubTest1() {
public void m() {
System.out.println("m");
}
};
}
private static abstract class SubTest1 extends Test1 {
public SubTest1() {
this.m();
}
public abstract void m();
}
}
你 can't define an anonymous class constructor , 因此最后使用 SubTest1
类的构造函数和抽象方法。
关于java - 如何调用对象实例化时定义的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032710/