こんにちは、私はJavaを学び始め、いくつかのかなり難しいコードを介して自分のやり方を工夫し始めた。Java - 型への変数のキャストは型のクラスをインスタンス化しますか?
変数をオブジェクト型にキャストするだけで、そのオブジェクトをインスタンス化するのに十分かどうか疑問に思っていますか?私は1つの方法は、メソッドの引数内のArrayTypeにpastaVariableと呼ばれるオブジェクトをキャストする方法に気づいコード中に
。
こちらをご覧ください:
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;
}
....
変数baseTypeであるためArrayType.javaは、ArrayTypeクラスで宣言されていますのコンストラクタ私はこのコンストラクタがトリガされているのだろうか?
ArrayTypeのクラスコンストラクタがコード内の他の場所で呼び出されるのを見つけることができません。
だから、私たちはgetIndexPredicateTypeForArrayメソッドの引数としてpastaVariableのArrayTypeにをキャストするときのArrayTypeコンストラクタがトリガされることは可能でしょうか?
ここに完全なコードを投稿しているとは思わないが、コードに含まれていない方法を参照すると混乱するだけです。 – Mritunjay
ありがとう@Mritunjay。それに応じてコードを調整しました。 – Z101
どこから 'getIndexPredicateTypeForArray'を呼び出しますか?どのような価値? – nullpointer