我有以下情况。现在我需要从另一个类调用方法二,我该怎么做?在java中,您可以在方法中声明一个类。
public class Name {
void methodOne() {
class InnerClass {
void methodTwo() {
}
}
}
}
答案 0 :(得分:2)
我在Java 中测试了这个并打印了消息:
class Foo {
void bar() {
class Baz {
void hi() {
System.out.println("Hi");
}
}
Baz baz = new Baz();
baz.hi();
}
}
对于非Java程序员,这会导致很奇怪,但却是anonymous classes的基础
现在我需要从另一个类
调用methodTwo
由于Baz
类在bar
方法内,因此您无法在此方法之外使用它。唯一可以做到这一点的情况是,这个Bar
类实现了一个公共接口(或扩展了一个公共[abstract]类),可以被另一个类使用。例如:
interface Polite {
void hi();
}
class Bud {
void aMethod(Polite polite) {
polite.hi();
}
}
class Foo {
void bar() {
class Baz implements Polite {
@Override
public void hi() {
System.out.println("Hi");
}
}
Polite baz = new Baz();
Bud bud = new Bud();
bud.aMethod(baz);
}
}