Java では、リフレクションを使用して、クラスのすべての修飾子を表す整数を取得できます。例えば:
public final class Foo{}
Foo.getClass().getModifiers();//returns 17 because public=1 and final=16
私の質問は、2 つのクラスの修飾子を比較する最良の方法は何ですか? 別のクラスがあるとしましょう:
private class Bar{}
Bar.getClass().getModifiers();//returns 2 because private=2
簡単な方法は、modifier.isAbstract、modifier.isPublic などの多数の if を使用することです。しかし、これを行うよりクリーンな方法はありますか?
編集: 結局、2 つのリストが必要です。1 つは Foo が持っていて Bar が持っていないものを言い、もう 1 つは Bar が持っていて Foo が持っていないものを言います。したがって、この特定のケースでは、次のことが必要です。
FooHasBarDoesnt: public, final
BarHasFooDoesnt: private