Java外部类的构造方法中声明内部类的问题
2014-08-26 10:24
232 查看
RT,我在写代码时碰到一个以下问题:
1.类A 的无参构造方法中 调用 有参(参数类型为B)构造方法,出现了以下问题.
2.1.若B为A的内部类,则编译出错
2.2.若B为普通类,则无问题.
代码如下:
内部类:
普通类:
有什么解决办法吗?
1. 把内部类B改成 static
2.因为一些原因,内部类B不能是static,有什么别的解决办法吗?
补充:
内部类这么写也没问题:
参数资料:
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
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
相关文章推荐
- 【Java】内部类访问的外部变量定义成final (数据保持一致,外部修改后无法通知内部,编译的时候会通过构造方法传进来) Java内部类一般访问不了外部变量
- JAVA匿名内部类不能访问外部类方法中的局部变量,除非变量被声明为final类型
- Java.内部类方法对外部类对象的引用x-this.x-Test.this.x
- 用内部类实现java多重实现中的方法同名问题
- java类方法中使用内部类的参数问题
- Java中子类和父类构造方法的问题
- Java中 每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法
- java中子类继承父类自动调用父类无参构造方法的问题
- java中子类与父类构造方法的问题
- java 内部类在外部的使用方法
- 关于Java构造方法的一个问题
- java中的继承问题,类B继承A,那么构造方法需要这样写吗?这不是重复吗?还有接口与抽象类怎么实现?
- Java里子类调用父类构造方法问题
- structs2 java.lang.IllegalAccessException(javaBean构造方法修饰符问题)
- Java语言入门教程(十三):Java语言中继承中的构造方法问题
- 用内部类实现java多重实现中的方法同名问题
- Java中子类调用父类构造方法的问题分析
- 声明方法java实际开发中泛型使用需要注意的一些问题
- java 初始化顺序以及由此可能引发的构造方法的潜在问题。
- java中匿名内部类的构造方法调用