我有两个对象具有相同的类型,然后我试图看看他们是否是平等的,但似乎他们不是,我真的不明白为什么这正在发生,我从屏幕上拍了一张照片,你们可以看到我想说什么:比较应该返回true,但返回false
here(高分辨率)。
该图像是为了向你们展示真正发生的甚至是破坏的事情。
下面的代码和类:
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;
}
Type类
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";
}
}
如果Type是一个'enum',那么OP解决方案将非常好用,非常诚实! – corsiKa
@安德鲁非常感谢你。 –