【问题标题】:How this method is called without using the classname如何在不使用类名的情况下调用此方法
【发布时间】:2013-06-09 10:01:23
【问题描述】:

我想知道如何在另一个类中调用静态方法。

假设我有以下课程,

class classA
{
public static void method1(String a)
{
}
}

在另一个类中,方法method1被调用如下,

class classB
{
public static void main(String[] args)
{
 method1("Alpha");
 }
 }

请注意 ClassB 没有扩展 ClassA,我很困惑。

【问题讨论】:

标签: java


【解决方案1】:

您可以使用静态导入:

import static yourpackage.classA.method1;

欲了解更多信息,请参阅:http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

如果您使用默认包,导入将失败,请参阅:https://stackoverflow.com/a/1964006/2039482

旁注:类名通常总是以大写字母开头

【讨论】:

    【解决方案2】:

    如果你的 B 类中有 static import yourpacage.ClassA,你可以调用静态方法而不用写类名。

    【讨论】:

      【解决方案3】:

      如果这两个类在同一个包中,你不必导入它们,你可以直接去:

      Classname.methodName(possibleParameter);
      

      如果不在同一个包中,请导入 Bernhard Poiss 提到的包。

      【讨论】:

        【解决方案4】:

        我看不出这样的事情怎么会发生,除非:

        1. classB 是 classA 的静态内部类或类似的东西。
        2. 您在某处有一个静态导入(仅当您将类放在包中时才有效)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多