为什么我不能在另一个类中调用静态方法?

时间:2018-01-17 08:58:01

标签: java

我有一个静态方法的A类:

public static class A {
    public static void methodA(){...}

当我想从B类中的A类调用methodA时,你喜欢这样:

class B {
    A.methodA();
}

IDE说无法使用methodA重新引用引用,我知道它的java语法问题,除了在B类方法中调用它之外,我怎么能在类B中调用methodA?

2 个答案:

答案 0 :(得分:1)

你不能像在class B中那样在课堂上调用方法。在类的主体中,您可以定义此类的字段和方法。如果您希望在创建某个类的实例时执行某些操作,则需要在构造函数,初始化块或其他方法的主体中包含这些操作。如果在任何情况下都没有成功创建对象,那么在构造函数中调用方法似乎存在风险,这可能会导致构造函数中包含的调用方法出现问题。

致电methodA()我建议采用以下方法之一:

  1. class B中创建适当的方法,并在class A的正文中调用class B的静态方法。

  2. 创建一个正确的初始化块来调用此方法。

  3. 如何从methodA()拨打class B的示例,您可以在下面看到:

    // 1.:
    class B {
        public void callA() {
            A.methodA();
        }
    }
    

    // 2.:
    class B {
        {
            A.methodA();
        } 
    }
    

答案 1 :(得分:0)

除了PrzemysławMoskal所接受的答案之外,您还可以在创建B类的任何实例之前从静态块调用静态方法:

class B {
    static {
        A.methodA();
    } 
}