オブジェクトマッピングを実現するロジックを書いていたりすると Class クラスのインスタンスを扱うことがあります。 その Class に何かしらの条件を設けたいということもよくあります。 折角Javaを使っているのだから、型検査時に不正な値を弾くことができるとステキですよね。 実現したいこと // 重要なインターフェイス! interface MetaSyntacticValiable {} class Hoge implements MetaSyntacticValiable {} class Fuga implements MetaSyntacticValiable {} // MetaSyntacticValiable とは無関係なクラス class UnrelatedToHogeOrSomething {} (中略) someMethodUsingClassClass(Hoge.