两个java文件位于同一目录下。
//c:\javaSource\ClassA.javaimport static ClassB.*;public class ClassA {
public static void main(String[] args) {
printMessage();
}
}
//c:\javaSource\ClassB.javapublic class ClassB {
public static void printMessage() {
System.out.println("Hello world!");
}
}
报错:找不到类ClassB; 找不到printMessage()我知道问题是由静态导入引起的。一种解决方案是在printMessage()前加上ClassB.
但这种方法相当繁琐。尤其是在需要大量使用ClassB的静态方法的时候,每个方法前面都加上类名限定使得代码的可读性很差。
如何才能正确地static import呢?
//c:\javaSource\ClassA.javaimport static ClassB.*;public class ClassA {
public static void main(String[] args) {
printMessage();
}
}
//c:\javaSource\ClassB.javapublic class ClassB {
public static void printMessage() {
System.out.println("Hello world!");
}
}
报错:找不到类ClassB; 找不到printMessage()我知道问题是由静态导入引起的。一种解决方案是在printMessage()前加上ClassB.
但这种方法相当繁琐。尤其是在需要大量使用ClassB的静态方法的时候,每个方法前面都加上类名限定使得代码的可读性很差。
如何才能正确地static import呢?
呵呵,将printMessage()定义为静态是为了方便ClassA调用。
诚如阁下所言,可以用classB.printMessage()。
这种方案对于少量的函数的调用而言是没问题的。但如果大量使用,就会出现我前面所说的代码可读性差的问题。
我想您一定用过import static来导入java类库中的包或特定方法。
我现在就是想静态导入自己的类,不知道具体应该怎么操作。
那么将文件放到javaSource包中,得到:
//c:\javaSource\ClassA.javapackage javaSource;import static ClassB.*;public class ClassA {
public static void main(String[] args) {
printMessage();
}
}
//c:\javaSource\ClassB.javapackage javaSource;public class ClassB {
public static void printMessage() {
System.out.println("Hello world!");
}
}
运行之后还是同样的问题……。
怎么导入呢?
package com.lw.test;public class ClassB {
public static void printMessage() {
System.out.println("Hello world!");
}
package com.lw.test;import static com.lw.test.ClassB.*;public class ClassA {
public static void main(String[] args) {
printMessage();
}
}import static com.lw.test.ClassB.*;关键所在!
应该是这样写
还要注意你的classpath设置