Boolean.TYPEとboolean.class

プリミティブ型に対応するラッパ型が持つ「TYPE」という定数はプリミティブ型のクラスを表す。
例えばBeoolean.TYPEはbooleanのクラス型を表すが、これはboolean.classと同じ。

    System.out.println(boolean.class == Boolean.TYPE);

→ true

ところで次のようなメソッドがあった場合、

    public T get(Class<T> type) {
        return null;
    }

get(boolean.class)の返り値はBooleanとみなされる?booleanとみなされる?

これを調べるために次のようなメソッドを作成。

    public String getType(boolean b) {
        return "boolean";
    }

    public String getType(Boolean b) {
        return "Boolean";
    }

で、次のようにしてみた。

    System.out.println(getType(get(boolean.class)));

結果は「Boolean」。ま、当然といえば当然か。