我有以下情况。现在我需要从另一个类调用方法二,我该怎么做?在java中,您可以在方法中声明一个类。
public class Name {
void methodOne() {
class InnerClass {
void methodTwo() {
}
}
}
}
我有以下情况。现在我需要从另一个类调用方法二,我该怎么做?在java中,您可以在方法中声明一个类。
public class Name {
void methodOne() {
class InnerClass {
void methodTwo() {
}
}
}
}
我已经在 Java中对此进行了测试并打印了消息:
class Foo {
void bar() {
class Baz {
void hi() {
System.out.println("Hi");
}
}
Baz baz = new Baz();
baz.hi();
}
}
对于非 Java 程序员,这会导致非常奇怪,但它是匿名类的基础
现在我需要从另一个类调用 methodTwo
由于Baz
该类在bar
方法内部,因此您不能在此方法之外使用它。唯一可以这样做的情况是,此类Bar
实现了一个公共接口(或扩展了一个公共 [抽象] 类),该接口可以被另一个类使用。例如:
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);
}
}