您的位置:首页 > 编程语言 > Java开发

Java外部类的构造方法中声明内部类的问题

2014-08-26 10:24 232 查看
RT,我在写代码时碰到一个以下问题:

1.类A 的无参构造方法中 调用 有参(参数类型为B)构造方法,出现了以下问题.

2.1.若B为A的内部类,则编译出错

2.2.若B为普通类,则无问题.

代码如下:

内部类:

public class A1 {
B1 b;

public A1() {
this(new B1());//此处编译出错
}

public A1(B1 b) {
this.b = b;
}

public class B1 {
}
}


普通类:

public class A2 {
B2 b;

public A2() {
this(new B2());//此处没有问题
}

public A2(B2 d) {
this.b = d;
}
}

class B2 {
}


有什么解决办法吗?

1. 把内部类B改成 static

2.因为一些原因,内部类B不能是static,有什么别的解决办法吗?

补充:

内部类这么写也没问题:

public class A1 {
B1 b;

public A1() {
b=new B1();//这么写没问题.
//		this(new B1());
}

public A1(B1 b) {
this.b = b;
}

public class B1 {
}
}

参数资料:

http://blog.csdn.net/shuixin536/article/details/8989776

http://stackoverflow.com/questions/2741066/why-does-a-sub-class-class-of-a-class-have-to-be-static-in-order-to-initialize-t
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息