同じタイプのオブジェクトが2つあり、それらが等しいかどうかを確認しようとしていますが、そうではないようです。なぜこれが発生するのかよくわかりません。画面から写真を撮りました。皆さんは私が言おうとしていることを見ることができます:
ここ(高解像度)。
画像は、デバグでさえ実際に何が起こっているかを皆さんに示すためのものです。
コードとクラスは次のとおりです。
private boolean checkForExpr(Type lowerExprType, Type upperExprType) {
boolean result = false;
if (lowerExprType == Type.undefinedType || upperExprType == Type.undefinedType){
return false;
}else{
result = (lowerExprType == upperExprType);
}
return result;
}
型クラス
abstract public class Type {
public Type( String name ) {
this.name = name;
}
public static Type booleanType = new BooleanType();
public static Type integerType = new IntegerType();
public static Type charType = new CharType();
public static Type undefinedType = new UndefinedType();
public String getName() {
return name;
}
abstract public String getCname();
private String name;
}
IntegerTypeクラス
public class IntegerType extends Type {
public IntegerType() {
super("integer");
}
public String getCname() {
return "int";
}
}