作为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 
+0

我知道......但是这个代码是“想在Java中,第四ED“。我只想知道它为什么教会我们这种方法的原因。 – shanwu 2014-09-25 05:29:12

+0

@山武我已经更新了我的答案。 (不知道是否因为它被删除而被我以前的评论通知) – 2014-09-25 14:40:50

+0

#〜/ 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