s-java コンパイラのバリエーションを実装しようとしています。そのために、さまざまな変数を表すいくつかのクラスを作成しました。ある時点で、このような割り当て行int a = b
が合法的な割り当てであるかどうかを確認したいと思います。(bは任意の変数である可能性があります)したがって、IntVariable a
インスタンスを作成し、bはいくつかのインスタンスであり、bを実際にaに割り当てることができるかどうかをVariable
確認しています。b instance of a
これはinstanceof
使用例にすぎません。他にもいくつかのケースがあり (b は文字列リテラルまたは数値である可能性があります)、 を使用してinstanceof
、私が知っているオプションのいずれかが存在し、代入が法的。
私の質問は次のとおりです。これを使用しないでより良い方法で行うことができますinstanceof
か、それともそれほどきれいではありませんが、それでも機能し、他の方法ははるかに複雑であるという事実に耐えなければなりませんか?
編集:
public boolean convertable(Type other) {
if (other instanceof FloatType || other instanceof DoubleType) {
return true;
}
return false;
}