您好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>方法?
答案 0 :(得分:1)
无论您从何处调用方法getIndexPredicateTypeForArray
。您可以将ArrayType
的实例作为唯一参数传递给此方法。该实例在创建时负责调用ArrayType的构造函数或定义在类中声明的字段。