覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

com.google.common.primitives.Primitives

Guavacom.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));
    }
}