【发布时间】:2014-01-08 07:01:55
【问题描述】:
我认为我合理地理解了包的使用,但在尝试使用导入包中的方法时遇到了一个表面上微不足道的问题。
我在以下目录结构中有三个文件:
- Tester.java
- approach1\Approach.java
- approach2\Approach.java
他们的代码如下:
Tester.java
import approach1.Approach;
public class Tester {
public static void main(String[] args)
{
approach1.Approach.sharedMethod("TEXT");
sharedMethod("TEXT");
}
}
approach1\Approach.java
package approach1;
public class Approach {
public static void sharedMethod(String approachText)
{
System.out.println("Approach Text: " + approachText);
}
}
approach2\Approach.java
package approach2;
public class Approach {
public static void sharedMethod(String approachText) { }
}
正如您可能猜到的,我试图根据导入的包/类从不同的方法中得出不同的响应。我遇到的问题在 Tester.java 中。第一个显式行工作正常,而第二个导入行 (sharedMethod("TEXT")) 抛出 “方法 sharedMethod(String) 未定义类型 Tester” 的错误。我不明白,因为我已经导入了其中一个包,所以该方法应该是可见的。
任何澄清都会被欣赏,因为我是 Java 新手。谢谢!
【问题讨论】:
-
非静态导入导入类,而不是方法。调用方法时还是需要指定类:
Approach.sharedMethod("TEXT");