Guavaのcom.google.common.primitives.Primitives
の利用サンプルです。
Primitivesクラスはプリミティブ型とプリミティブラッパークラスのClassの変換(ラップ・アンラップ)メソッドなどを提供しています。
サンプルコードで試したのは以下の通りです。
全てのプリミティブ型のクラス(Class)を取得
■API
Primitives#allPrimitiveTypes
■サンプル
System.out.println("### Primitives.allPrimitiveTypes execute"); Set<Class<?>> primitiveClazzSet = Primitives.allPrimitiveTypes(); System.out.println("All Primitives class : " + primitiveClazzSet);
■実行結果
### Primitives.allPrimitiveTypes execute All Primitives class : [float, long, void, short, int, char, double, boolean, byte]
全てのプリミティブラッパークラス(プリミティブ型のラッパークラス(Class))を取得
■API
Primitives#allWrapperTypes
■サンプル
System.out.println("### Primitives.allPrimitiveTypes execute"); Set<Class<?>> wrapperClazzSet = Primitives.allWrapperTypes(); System.out.println("All Wrapper class : " + wrapperClazzSet);
■実行結果
### Primitives.allPrimitiveTypes execute All Wrapper class : [class java.lang.Short, class java.lang.Integer, class java.lang.Boolean, class java.lang.Float, class java.lang.Byte, class java.lang.Character, class java.lang.Long, class java.lang.Void, class java.lang.Double]
プリミティブラッパークラスかどうかを判定
■API
Primitives#isWrapperType
■サンプル
System.out.println("### Primitives.isWrapperType execute"); System.out.println(int.class + " is wrapper class : " + Primitives.isWrapperType(int.class)); System.out.println(long.class + " is wrapper class : " + Primitives.isWrapperType(long.class)); System.out.println(double.class + " is wrapper class : " + Primitives.isWrapperType(double.class)); System.out.println(Integer.class + " is wrapper class : " + Primitives.isWrapperType(Integer.class)); System.out.println(Long.class + " is wrapper class : " + Primitives.isWrapperType(Long.class)); System.out.println(Double.class + " is wrapper class : " + Primitives.isWrapperType(Double.class)); // Stringとかプリミティブ型のラッパークラスと関係ないものを指定するとfalseが返却される System.out.println(String.class + " is wrapper class : " + Primitives.isWrapperType(String.class));
■実行結果
### Primitives.isWrapperType execute int is wrapper class : false long is wrapper class : false double is wrapper class : false class java.lang.Integer is wrapper class : true class java.lang.Long is wrapper class : true class java.lang.Double is wrapper class : true class java.lang.String is wrapper class : false
プリミティブラッパークラスからプリミティブ型のクラスを取得
■API
Primitives#unwrap
■サンプル
System.out.println("### Primitives.unwrap execute"); System.out.println(Integer.class + " unwrap : " + Primitives.unwrap(Integer.class)); System.out.println(Short.class + " unwrap : " + Primitives.unwrap(Short.class)); System.out.println(Boolean.class + " unwrap : " + Primitives.unwrap(Boolean.class));
■実行結果
### Primitives.unwrap execute class java.lang.Integer unwrap : int class java.lang.Short unwrap : short class java.lang.Boolean unwrap : boolean
プリミティブ型に対応するプリミティブラッパークラスを取得
■API
Primitives#wrap
■サンプル
System.out.println("### Primitives.wrap execute"); System.out.println(int.class + " wrap : " + Primitives.wrap(int.class)); System.out.println(short.class + " wrap : " + Primitives.wrap(short.class)); System.out.println(boolean.class + " wrap : " + Primitives.wrap(boolean.class));
■実行結果
### Primitives.wrap execute int wrap : class java.lang.Integer short wrap : class java.lang.Short boolean wrap : class java.lang.Boolean
試したソースコードの全体は以下です。
import com.google.common.primitives.Primitives; import java.util.Set; public class PrimitivesClient { public static void main(String[] args) { // Primitives#allPrimitiveTypesで全てのプリミティブ型のクラス(Class)を取得 System.out.println("### Primitives.allPrimitiveTypes execute"); Set<Class<?>> primitiveClazzSet = Primitives.allPrimitiveTypes(); System.out.println("All Primitives class : " + primitiveClazzSet); // Primitives#allWrapperTypesで全てのプリミティブラッパークラス(プリミティブ型のラッパークラス(Class))を取得 System.out.println("### Primitives.allPrimitiveTypes execute"); Set<Class<?>> wrapperClazzSet = Primitives.allWrapperTypes(); System.out.println("All Wrapper class : " + wrapperClazzSet); // Primitives.isWrapperTypeでプリミティブラッパークラスかどうかを判定 System.out.println("### Primitives.isWrapperType execute"); System.out.println(int.class + " is wrapper class : " + Primitives.isWrapperType(int.class)); System.out.println(long.class + " is wrapper class : " + Primitives.isWrapperType(long.class)); System.out.println(double.class + " is wrapper class : " + Primitives.isWrapperType(double.class)); System.out.println(Integer.class + " is wrapper class : " + Primitives.isWrapperType(Integer.class)); System.out.println(Long.class + " is wrapper class : " + Primitives.isWrapperType(Long.class)); System.out.println(Double.class + " is wrapper class : " + Primitives.isWrapperType(Double.class)); // Stringとかプリミティブ型のラッパークラスと関係ないものを指定するとfalseが返却される System.out.println(String.class + " is wrapper class : " + Primitives.isWrapperType(String.class)); // Primitives.unwrapでプリミティブラッパークラスからプリミティブ型のクラスを取得 System.out.println("### Primitives.unwrap execute"); System.out.println(Integer.class + " unwrap : " + Primitives.unwrap(Integer.class)); System.out.println(Short.class + " unwrap : " + Primitives.unwrap(Short.class)); System.out.println(Boolean.class + " unwrap : " + Primitives.unwrap(Boolean.class)); // Primitives.wrapプリミティブ型に対応するプリミティブラッパークラスを取得 System.out.println("### Primitives.wrap execute"); System.out.println(int.class + " wrap : " + Primitives.wrap(int.class)); System.out.println(short.class + " wrap : " + Primitives.wrap(short.class)); System.out.println(boolean.class + " wrap : " + Primitives.wrap(boolean.class)); } }