我有以下代码:
public class A
{
private class B
{
public String a = "";
public B(String a)
{
System.out.println("hello");
this.a = a;
}
}
public A()
{
System.out.println("bla");
B b = new B("what's up?");
System.out.println("world");
}
public static void main(String[] args)
{
new A();
}
}
出于某种原因,仅打印“bla”,不打印其他打印件。 我正在使用动态类加载和调用main函数来加载带有jni的类文件。
我做错了什么?
答案 0 :(得分:1)
你去了,这段代码有效:
public class A
{
static class B
{
public String a = "";
public B(String a)
{
System.out.println("hello");
this.a = a;
}
}
public A()
{
System.out.println("bla");
B b = new B("what's up?");
System.out.println("world");
}
public static void main(String[] args)
{
new A();
A.B myAB = new A.B("hello");
}
}
输出:
bla
hello
world
hello
如果你想在B组打印实际字符串" a",然后将public String a = "";
更改为System.out.println(a);
,在这种情况下你会得到
bla
what's up?
world
hello
因为"what's up?"
传递给class B
请参阅Javadocs了解嵌套类,我认为它会对你有所帮助:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html