在Java中调用默认构造函数之前如何设置变量?

Guerlando OC:

我有以下课程:

public class MyGLSurfaceView extends GLSurfaceView {

    MyRenderer mRenderer;

    public MyGLSurfaceView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        init();
    }

我想添加以下构造函数:

public MyGLSurfaceView(Context context, MyRenderer myRenderer) {

我试过了:

public class MyGLSurfaceView extends GLSurfaceView {

    MyRenderer mRenderer;
    static AttributeSet attributeSet = null;

    public MyGLSurfaceView(Context context, MyRenderer mRenderer) {
        this.mRenderer = mRenderer;
        this(context, attributeSet);

    }

    public MyGLSurfaceView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        init();
    }

但这不会让我在调用默认构造函数之前设置渲染器MyGLSurfaceView

如何在调用默认构造函数之前设置变量?

蒂姆·库克(Tim Cooke):

在设置任何字段之前,您必须完成调用任何基本构造函数(无论是在此类中还是在超类中定义的)。因此,如果需要调用mRendererbefore init()进行设置,那么最好的办法就是将两个构造函数分开(如下所示):

public class MyGLSurfaceView extends GLSurfaceView {

    MyRenderer mRenderer;
    static AttributeSet attributeSet = null;

    public MyGLSurfaceView(Context context, MyRenderer mRenderer) {
        super(context, attributeSet);
        this.mRenderer = mRenderer;
        init();
    }

    public MyGLSurfaceView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        init();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在调用super之前在构造函数中强制转换变量?

如何为成员变量调用非默认构造函数?

默认构造函数中定义的变量的覆盖设置程序

Java如何在调用父构造函数之前覆盖子类中的父类属性

在Java中的构造函数之前初始化最终变量

类构造函数:如何在列表中设置默认类

在调用超类的构造函数之前,有什么方法可以在Java中初始化子类的成员变量?

在调用ngOnInit()之前,Angular构造函数未设置局部变量

Java中的默认构造函数

Java中的默认构造函数?

我可以在Java的公共类中从参数化构造函数调用默认构造函数吗?

使用重载的默认构造函数在Java中调用三个参数的构造函数?

如何使用 LambdaMetafactory 调用默认构造函数

如何在构造函数调用方法中创建变量?

如何比类中的成员变量更早地调用构造函数?

在Scala中调用默认构造函数

如何从默认构造函数调用参数化的构造函数?

默认构造函数是越来越在Java中的静态块之前执行

如何在java中的构造函数中设置字段

在构造函数的默认构造对象中未声明变量

在仅具有需要参数的已定义构造函数的类中调用默认构造函数(在Java中)

Java-在默认构造函数之前执行的方法

循环在构造函数中设置变量

构造函数的结束-在Java中的关系之前

如何在Java中确定构造函数调用?

如何通过反射在Java中调用构造函数?

如何从Java中的main方法调用构造函数?

Java中如何调用数组成员的构造函数?

用Java中的默认构造函数复制构造函数