我正在尝试实现一个s-java编译器的变体。为此,我创建了几个表示不同变量的类。在某些时候,我想要检查这样的赋值语句是否合法:
我的问题是:是否可以更好地完成这项工作而不使用
编辑:
int a = b
(b可以是任何Variable)。因此,我创建了一个IntVariable a
实例,而b是某个Variable
的实例,并且我正在检查b instanceof a
以确定b是否可以被实际分配到a中。这只是instanceof
用法的一个示例,我还有其他情况(b可能是字符串文字或数字),我正在使用instanceof
来查看我知道存在且合法的选项,以确定赋值是否合法。我的问题是:是否可以更好地完成这项工作而不使用
instanceof
,或者我必须接受这个事实,即虽然它不太美观,但仍然有效,而其他方法则更加复杂?编辑:
public boolean convertable(Type other) {
if (other instanceof FloatType || other instanceof DoubleType) {
return true;
}
return false;
}