我正在阅读“Java思考”,第4版'并且无法通过此练习:
创建两个包:debug和debugoff,包含一个相同的类 使用debug()方法。第一个版本显示其String参数 到控制台,第二个什么也没做。使用静态导入行 将类导入测试程序,并演示条件 编译效果。
显然我缺少了一些东西,因为当我尝试这个时:
// C:\Users\user\Documents\EclipseProjects\DebugOnOff\bin\debugonoff\debugon
package debugonoff.debugon;
public class Test {
public static void debug(String str) {}
}
// C:\Users\user\Documents\EclipseProjects\DebugOnOff\bin\debugonoff\debug
package debugonoff.debug;
public class Test {
public static void debug(String str) {
System.out.println(str);
}
}
// C:\Users\user\Documents\EclipseProjects\DebugOnOff\bin
import static debugonoff.debug.Test.*;
public class TestProgram {
public static void main(String[] args) {
debug("Hi there!");
}
}
发生此错误消息:
对于TestProgram类型
,方法debug(String)未定义
这里的问题是什么?
答案 0 :(得分:0)
您无法使用指定的静态导入来导入方法
Ex:System.out.println(""); - >可以替换为 通过out.println("&#34);如果你进行了java.lang.System的静态导入。*;
在任何情况下都不建议使用静态导入,因为它会降低代码的可读性和可维护性。
静态方法只能以Class.methodName()的最小方式访问 或者像往常一样新的class()。methodName()
addComment 如果您不清楚
答案 1 :(得分:0)
此代码应该有效。至少它对我有用。
您使用哪种编译器,Java版本,IDE和操作系统?
请注意,其他2条评论不正确[{3}}。可以为方法执行静态导入。文档中的示例是
import static java.lang.Math.*;
double r = cos(PI * theta);
答案 2 :(得分:0)
您可以查看项目设置吗?
我将您的代码复制到我的项目中并且有效。
从您已经显示的路径看来,您的代码似乎位于bin
目录中 - 这是eclipse通常放置已编译的.class
文件的位置。您的源文件应该位于src
目录中。