0

int.class-> Integerのように、クラスをクラスにマッピングする関数が欲しいのですが。

4

2 に答える 2

4

これはバニラJDKで具体的に提供されていませんが、独自のものを作成したくない場合は、Guavaが提供Primitives.wrap(Class)し、プリミティブ型を取り、対応するラッパー型を返します。

于 2013-02-11T20:26:52.153 に答える
1

整数の場合:

int.class or the equivalent: Integer.TYPE;

他のプリミティブ型についても同じです

double.class or Double.TYPE
float.class or Float.TYPE
char.class or Character.TYPE
long.class or Long.TYPE
boolean.class Boolean.TYPE

次のように使用します。

Class intClass = int.class;

これは、プリミティブ型intを表すクラスです。

その情報を使用して、独自のマッパーを作成するだけです:(8行のコード用の外部ライブラリを含めたくない)

public Class getClassForPrimitiveType(Class clazz) {
  if (clazz == int.class) return Integer.class;
  if (clazz == float.class) return Float.class;
  // TODO other primitives
}
于 2013-02-11T20:25:22.297 に答える