メソッド内のフィールドのクラスを渡す必要があるコードがあります。私のコードの仕組みのために、私は参照オブジェクトのみを処理でき、プリミティブは処理できません。の型がプリミティブであるかどうかを簡単に判断Field
し、適切なラッパークラスと交換する方法が必要です。したがって、コードでは、これまでに行ったことは次のようなものです。
Field f = getTheField(); // Dummy method that returns my Field
Class<?> c = f.getType();
if (c == int.class) {
c = Integer.class;
}
else if (c == float.class) {
c = Float.class;
}
// etc
myMethod(c);
これは、すべてのプリミティブ型を明示的にチェックし、それらを適切なラッパークラスと交換する必要があるという事実を除いて、正常に機能します。プリミティブ型はそれほど多くないので、すべてをリストするだけでも問題はないことがわかりましたが、もっと簡単でエレガントな方法があるのではないかと思いました。