私は古いコードを生成しようとしていInteger.class
ますInteger.TYPE
..入力クラス)。これは変換の候補のようです (まだどこかに存在しない場合)。だから、私はこのようなものを持っています:
public static <T> Class<T> convert(Class<T> type) {
if (type == Integer.class) return Integer.TYPE;
// and so on
return type;
}
このコードの問題は、コンパイラ自体が if ブロックで を確認したことをT == Integer
認識していないことInteger.TYPE
です。もちろん、いつでも明示的にキャストできClass<T>
ます。問題は、このキャストは安全であり、@SuppressWarnings("unchecked")
注釈を追加しても問題ないかどうかです。