我在运行此程序后得到java.lang.InstantiationException
,但我期待 Hello World 作为输出。
public class Test {
public static void main(String[] args) throws Exception {
new Test().greetWorld();
}
private void greetWorld() throws Exception {
System.out.println(Test2.class.newInstance());
}
class Test2 {
public String toString() {
return "Hello world";
}
}
}
有人可以告诉我这个例外,以及为什么不打印 Hello World
答案 0 :(得分:2)
这是因为mongodb://host.example.com/?readPreference=primary
不是Test2
类。让static
使其成功。
static
或者,将static class Test2 {
public String toString() {
return "Hello world";
}
}
移出Test2
。
考虑一下如何创建Test1
的实例。由于它不是静态的,你不能只做
Test2
您需要处于Test1.Test2 obj = new Test1.Test2();
的非静态环境中。
这就是为什么你不能直接从Test1
对象获取构造函数。