作为Java中的测试方法的嵌套类
问题描述:
//: innerclasses/TestBed.java
// Putting test code in a nested class.
// {main: TestBed$Tester}
public class TestBed {
public void f() { System.out.println("f()"); }
public static class Tester {
public static void main(String[] args) {
TestBed t = new TestBed();
t.f();
}
}
} /* Output:
f()
*///:~
我正在学习“用Java思考”。我只是想知道为什么上面的代码不起作用,这应该是测试每个类的方法,并且可以通过删除TestBed $ Tester.class文件来删除。作为Java中的测试方法的嵌套类
错误消息指示应该有一个公共静态void main(String [] args)作为程序入口在TestBed类中。
Java的编译版本:javac的1.7.0_40
答
的main
方法必须是公共的顶级类。这是与java文件同名的那个。在这里,这是TestBed
级。
当前main
方法处于内部类(即TestBed$Tester
)中,并且不能用于启动程序。
编辑:我可能错了。我参加了你所提到的书一看,它看起来像你可以通过书面形式运行从Command Promt内部类:
java TestBed$Tester
我知道......但是这个代码是“想在Java中,第四ED“。我只想知道它为什么教会我们这种方法的原因。 – shanwu 2014-09-25 05:29:12
@山武我已经更新了我的答案。 (不知道是否因为它被删除而被我以前的评论通知) – 2014-09-25 14:40:50
#〜/ java_practice/innerclasses $ javac TestBed.Java #〜/ java_practice/innerclasses $ java TestBed $ Tester error:TestBed can not find main方法... public static void main(String [] args) 什么是您的java编译器版本?我不知道这是否与Java编译器版本有关... – shanwu 2014-09-26 00:23:31