私は古いコードを生成しようとしてい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")注釈を追加しても問題ないかどうかです。