如何启动另一种方法中的方法?

时间:2013-04-26 21:36:25

标签: java

我有以下情况。现在我需要从另一个类调用方法二,我该怎么做?在java中,您可以在方法中声明一个类。

public class Name {
    void methodOne() {
        class InnerClass {
           void methodTwo() {
           }
         }
     }
 }

1 个答案:

答案 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);
    }
}