Java - 将变量转换为类型会实例化类型的类吗?

时间:2016-12-17 04:47:21

标签: java casting

您好Stackoverflow社区

我开始学习Java并且正在努力学习一些相当困难的代码。我想知道将变量转换为对象类型是否足以实例化该对象?

在代码中我注意到一个方法如何在方法的参数中将名为 pastaVariable 的对象强制转换为 ArrayType

见这里:

public ComplexType getIndexPredicateTypeForArray(ArrayType pastaVariable) {
        final Type baseType = pastaVariable.getBaseType();
        return baseType;
    }

方法 getBaseType()在类 ArrayType.java 中定义,如下所示:

public class ArrayType extends Type {

    private final Type          baseType;
    private final Type          parent;

    ArrayType(String name, Type baseType, Type parent) {
        super(name);
        this.parent = parent;
        this.baseType = baseType;
    }

    public Type getBaseType() {
        return baseType;
    }
....

由于 ArrayType.java 中的变量 baseType 是在 ArrayType类的构造函数中声明的,我想知道这个构造函数在哪里被触发? / p>

我无法在代码中的任何其他地方找到ArrayType的类构造函数。

当我们将 pastaVariable 转换为 ArrayType 作为 getIndexPredicateTypeForArray <的参数时,可能会触发 ArrayType构造函数 / strong>方法?

1 个答案:

答案 0 :(得分:1)

无论您从何处调用方法getIndexPredicateTypeForArray。您可以将ArrayType的实例作为唯一参数传递给此方法。该实例在创建时负责调用ArrayType的构造函数或定义在类中声明的字段。