我正在尝试实现 s-java 编译器的变体。为此,我创建了一些代表不同变量的类。在某些时候,我想检查这样的分配行int a = b
是否是合法的分配。(b 可以是任何变量)所以我创建了一个IntVariable a
实例,b 是一些的实例,Variable
我正在检查b instance of a
以确定 b 是否实际上可以分配给 a。这只是instanceof
用法的一个示例,我还有一些其他情况(b 可以是字符串文字或数字),我正在使用instanceof
来查看我知道的任何选项是否存在并且是否合法以确定分配是否合法的。
我的问题是:这是否可以以一种更好的方式完成而不使用instanceof
,或者我只需要接受这样一个事实,即虽然它不是那么漂亮,但它仍然可以工作,而其他方式要复杂得多?
编辑:
public boolean convertable(Type other) {
if (other instanceof FloatType || other instanceof DoubleType) {
return true;
}
return false;
}