org.seasar.util.lang
クラス ClassUtil

java.lang.Object
  上位を拡張 org.seasar.util.lang.ClassUtil

public abstract class ClassUtil
extends Object

Class用のユーティリティクラスです。

作成者:
higa

フィールドの概要
protected static Map<String,Class<?>> primitiveNameToClassMap
          プリミティブ型の名前からクラスへのマップ
protected static Map<Class<?>,Class<?>> primitiveToWrapperMap
          プリミティブ型からラッパー型へのマップ
protected static Map<Class<?>,Class<?>> wrapperToPrimitiveMap
          ラッパー型からプリミティブ型へのマップ
 
コンストラクタの概要
ClassUtil()
           
 
メソッドの概要
static String concatName(String s1, String s2)
          クラス名の要素を結合します。
static Class<?> convertClass(String className)
          プリミティブクラスの場合は、ラッパークラスに変換して返します。
static
<T> Class<T>
forName(String className)
          現在のスレッドのコンテキストクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Classオブジェクトを返します。
static
<T> Class<T>
forName(String className, ClassLoader loader)
          指定されたクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられたClass オブジェクトを返します。
static
<T> Class<T>
forNameNoException(String className)
          現在のスレッドのコンテキストクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Classオブジェクトを返します。
static
<T> Class<T>
forNameNoException(String className, ClassLoader loader)
          指定されたクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Class オブジェクトを返します。
static
<T> Constructor<T>
getConstructor(Class<T> clazz, Class<?>... argTypes)
          Classオブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトする Constructorオブジェクトを返します。
static
<T> Constructor<T>
getDeclaredConstructor(Class<T> clazz, Class<?>... argTypes)
          Classオブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトする Constructorオブジェクトを返します。
static Field getDeclaredField(Class<?> clazz, String name)
          Classオブジェクトが表すクラスまたはインタフェースの指定された宣言フィールドをリフレクトするField オブジェクトを返します。
static Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... argTypes)
          Classオブジェクトが表すクラスまたはインタフェースの指定されたメンバメソッドをリフレクトするMethod オブジェクトを返します。
static Field getField(Class<?> clazz, String name)
          Classオブジェクトが表すクラスまたはインタフェースの指定されたpublicメンバフィールドをリフレクトする Fieldオブジェクトを返します。
static Method getMethod(Class<?> clazz, String name, Class<?>... argTypes)
          Classオブジェクトが表すクラスまたはインタフェースの指定されたpublicメンバメソッドをリフレクトする Methodオブジェクトを返します。
static String getPackageName(Class<?> clazz)
          パッケージ名を返します。
static Class<?> getPrimitiveClass(Class<?> clazz)
          ラッパークラスをプリミティブクラスに変換します。
static Class<?> getPrimitiveClassIfWrapper(Class<?> clazz)
          ラッパークラスならプリミティブクラスに、 そうでなければそのままクラスを返します。
static String getResourcePath(Class<?> clazz)
          クラス名をリソースパスとして表現します。
static String getResourcePath(String className)
          クラス名をリソースパスとして表現します。
static String getShortClassName(String className)
          FQCNからパッケージ名を除いた名前を返します。
static String getSimpleClassName(Class<?> clazz)
          配列の場合は要素のクラス名に[]を加えた文字列、それ以外はクラス名そのものを返します。
static Class<?> getWrapperClass(Class<?> clazz)
          プリミティブクラスをラッパークラスに変換します。
static Class<?> getWrapperClassIfPrimitive(Class<?> clazz)
          クラスがプリミティブの場合はラッパークラス、そうでない場合はもとのクラスを返します。
static boolean isAssignableFrom(Class<?> toClass, Class<?> fromClass)
          代入可能かどうかを返します。
static
<T> T
newInstance(Class<T> clazz)
          指定されたクラスのデフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。
static
<T> T
newInstance(String className)
          指定されたクラスをコンテキストクラスローダから取得し、デフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。
static
<T> T
newInstance(String className, ClassLoader loader)
          指定されたクラスを指定のクラスローダから取得し、デフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。
static String[] splitPackageAndShortClassName(String className)
          FQCNをパッケージ名とFQCNからパッケージ名を除いた名前に分けます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

wrapperToPrimitiveMap

protected static final Map<Class<?>,Class<?>> wrapperToPrimitiveMap
ラッパー型からプリミティブ型へのマップ


primitiveToWrapperMap

protected static final Map<Class<?>,Class<?>> primitiveToWrapperMap
プリミティブ型からラッパー型へのマップ


primitiveNameToClassMap

protected static final Map<String,Class<?>> primitiveNameToClassMap
プリミティブ型の名前からクラスへのマップ

コンストラクタの詳細

ClassUtil

public ClassUtil()
メソッドの詳細

forName

public static <T> Class<T> forName(String className)
                        throws ClassNotFoundRuntimeException
現在のスレッドのコンテキストクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Classオブジェクトを返します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
className - 要求するクラスの完全修飾名。nullや空文字列であってはいけません
戻り値:
指定された名前を持つクラスのClassオブジェクト
例外:
ClassNotFoundRuntimeException - クラスが見つからなかった場合
関連項目:
Class.forName(String, boolean, ClassLoader)

forName

public static <T> Class<T> forName(String className,
                                   ClassLoader loader)
                        throws ClassNotFoundRuntimeException
指定されたクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられたClass オブジェクトを返します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
className - 要求するクラスの完全修飾名。nullや空文字列であってはいけません
loader - クラスのロード元である必要があるクラスローダ
戻り値:
指定された名前を持つクラスのClassオブジェクト
例外:
EmptyArgumentException - クラス名がnullまたは空文字列だった場合
ClassNotFoundRuntimeException - クラスが見つからなかった場合
関連項目:
Class.forName(String, boolean, ClassLoader)

forNameNoException

public static <T> Class<T> forNameNoException(String className)
現在のスレッドのコンテキストクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Classオブジェクトを返します。

クラスが見つからなかった場合はnullを返します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
className - 要求するクラスの完全修飾名
戻り値:
指定された名前を持つクラスのClassオブジェクト
関連項目:
Class.forName(String)

forNameNoException

public static <T> Class<T> forNameNoException(String className,
                                              ClassLoader loader)
指定されたクラスローダを使って、 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Class オブジェクトを返します。

クラスが見つからなかった場合はnullを返します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
className - 要求するクラスの完全修飾名
loader - クラスのロード元である必要があるクラスローダ
戻り値:
指定された名前を持つクラスのClassオブジェクト
関連項目:
Class.forName(String)

convertClass

public static Class<?> convertClass(String className)
                             throws ClassNotFoundRuntimeException
プリミティブクラスの場合は、ラッパークラスに変換して返します。

パラメータ:
className - クラス名。nullや空文字列であってはいけません
戻り値:
Class
例外:
EmptyArgumentException - クラス名がnullまたは空文字列だった場合
ClassNotFoundRuntimeException - ClassNotFoundExceptionがおきた場合
関連項目:
forName(String)

newInstance

public static <T> T newInstance(Class<T> clazz)
                     throws InstantiationRuntimeException,
                            IllegalAccessRuntimeException
指定されたクラスのデフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
clazz - クラスを表すClassオブジェクト。nullであってはいけません
戻り値:
デフォルトコンストラクタを呼び出すことで作成される新規オブジェクト
例外:
InstantiationRuntimeException - 基本となるコンストラクタを宣言するクラスがabstractクラスを表す場合
IllegalAccessRuntimeException - 実パラメータ数と仮パラメータ数が異なる場合、 プリミティブ引数のラップ解除変換が失敗した場合、 またはラップ解除後、 メソッド呼び出し変換によってパラメータ値を対応する仮パラメータ型に変換できない場合、 このコンストラクタが列挙型に関連している場合
関連項目:
Constructor.newInstance(Object[])

newInstance

public static <T> T newInstance(String className)
                     throws ClassNotFoundRuntimeException,
                            InstantiationRuntimeException,
                            IllegalAccessRuntimeException
指定されたクラスをコンテキストクラスローダから取得し、デフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。

型パラメータ:
T - 生成するインスタンスの型
パラメータ:
className - クラス名。nullや空文字列であってはいけません
戻り値:
デフォルトコンストラクタを呼び出すことで作成される新規オブジェクト
例外:
ClassNotFoundRuntimeException - クラスが見つからなかった場合
InstantiationRuntimeException - 基本となるコンストラクタを宣言するクラスがabstractクラスを表す場合
IllegalAccessRuntimeException - 実パラメータ数と仮パラメータ数が異なる場合、 プリミティブ引数のラップ解除変換が失敗した場合、 またはラップ解除後、 メソッド呼び出し変換によってパラメータ値を対応する仮パラメータ型に変換できない場合、 このコンストラクタが列挙型に関連している場合
関連項目:
newInstance(Class), forName(String)

newInstance

public static <T> T newInstance(String className,
                                ClassLoader loader)
                     throws ClassNotFoundRuntimeException,
                            InstantiationRuntimeException,
                            IllegalAccessRuntimeException
指定されたクラスを指定のクラスローダから取得し、デフォルトコンストラクタで、クラスの新しいインスタンスを作成および初期化します。

型パラメータ:
T - 生成するインスタンスの型
パラメータ:
className - クラス名。nullや空文字列であってはいけません
loader - クラスローダ
戻り値:
新しいインスタンス
例外:
ClassNotFoundRuntimeException - ClassNotFoundExceptionがおきた場合
InstantiationRuntimeException - InstantiationExceptionがおきた場合
IllegalAccessRuntimeException - IllegalAccessExceptionがおきた場合
関連項目:
newInstance(Class), forName(String, ClassLoader)

isAssignableFrom

public static boolean isAssignableFrom(Class<?> toClass,
                                       Class<?> fromClass)
代入可能かどうかを返します。

パラメータ:
toClass - 代入先のクラス。nullであってはいけません
fromClass - 代入元のクラス。nullであってはいけません
戻り値:
代入可能かどうか
関連項目:
Class.isAssignableFrom(Class)

getPrimitiveClass

public static Class<?> getPrimitiveClass(Class<?> clazz)
ラッパークラスをプリミティブクラスに変換します。

パラメータ:
clazz - ラッパークラス。nullであってはいけません
戻り値:
引数がラッパークラスならプリミティブクラス、それ以外の場合はnull

getPrimitiveClassIfWrapper

public static Class<?> getPrimitiveClassIfWrapper(Class<?> clazz)
ラッパークラスならプリミティブクラスに、 そうでなければそのままクラスを返します。

パラメータ:
clazz - クラス。nullであってはいけません
戻り値:
引数がラッパークラスならプリミティブクラス、それ以外の場合は引数で渡されたクラス

getWrapperClass

public static Class<?> getWrapperClass(Class<?> clazz)
プリミティブクラスをラッパークラスに変換します。

パラメータ:
clazz - プリミティブクラス。nullであってはいけません
戻り値:
引数がプリミティブクラスならラッパークラス、それ以外の場合はnull

getWrapperClassIfPrimitive

public static Class<?> getWrapperClassIfPrimitive(Class<?> clazz)
クラスがプリミティブの場合はラッパークラス、そうでない場合はもとのクラスを返します。

パラメータ:
clazz - クラス。nullであってはいけません
戻り値:
引数がプリミティブクラスならラッパークラス、それ以外の場合は引数で渡されたクラス

getConstructor

public static <T> Constructor<T> getConstructor(Class<T> clazz,
                                                Class<?>... argTypes)
                                     throws NoSuchConstructorRuntimeException
Classオブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトする Constructorオブジェクトを返します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
clazz - クラスのClassオブジェクト。nullであってはいけません
argTypes - パラメータ配列
戻り値:
指定されたargTypesと一致するpublicコンストラクタの Constructorオブジェクト
例外:
NoSuchConstructorRuntimeException - 一致するコンストラクタが見つからない場合
関連項目:
Class.getConstructor(Class...)

getDeclaredConstructor

public static <T> Constructor<T> getDeclaredConstructor(Class<T> clazz,
                                                        Class<?>... argTypes)
                                             throws NoSuchConstructorRuntimeException
Classオブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトする Constructorオブジェクトを返します。

型パラメータ:
T - Classオブジェクトが表すクラス
パラメータ:
clazz - クラスのClassオブジェクト。nullであってはいけません
argTypes - パラメータ配列
戻り値:
指定されたargTypesと一致するコンストラクタのConstructorオブジェクト
例外:
NoSuchConstructorRuntimeException - 一致するコンストラクタが見つからない場合
関連項目:
Class.getDeclaredConstructor(Class...)

getField

public static Field getField(Class<?> clazz,
                             String name)
                      throws NoSuchFieldRuntimeException
Classオブジェクトが表すクラスまたはインタフェースの指定されたpublicメンバフィールドをリフレクトする Fieldオブジェクトを返します。

パラメータ:
clazz - クラスのClassオブジェクト。nullであってはいけません
name - フィールド名。nullや空文字列であってはいけません
戻り値:
nameで指定されたこのクラスのFieldオブジェクト
例外:
EmptyArgumentException - フィールド名がnullまたは空文字列だった場合
NoSuchFieldRuntimeException - 指定された名前のフィールドが見つからない場合
関連項目:
Class.getField(String)

getDeclaredField

public static Field getDeclaredField(Class<?> clazz,
                                     String name)
                              throws NoSuchFieldRuntimeException
Classオブジェクトが表すクラスまたはインタフェースの指定された宣言フィールドをリフレクトするField オブジェクトを返します。

パラメータ:
clazz - クラスのClassオブジェクト。nullであってはいけません
name - フィールド名。nullや空文字列であってはいけません
戻り値:
nameで指定されたこのクラスのFieldオブジェクト
例外:
NoSuchFieldRuntimeException - 指定された名前のフィールドが見つからない場合
関連項目:
Class.getDeclaredField(String)

getMethod

public static Method getMethod(Class<?> clazz,
                               String name,
                               Class<?>... argTypes)
                        throws NoSuchMethodRuntimeException
Classオブジェクトが表すクラスまたはインタフェースの指定されたpublicメンバメソッドをリフレクトする Methodオブジェクトを返します。

パラメータ:
clazz - クラスのClassオブジェクト。nullであってはいけません
name - メソッドの名前。nullや空文字列であってはいけません
argTypes - パラメータのリスト
戻り値:
指定されたnameおよびargTypesと一致するMethodオブジェクト
例外:
EmptyArgumentException - メソッド名がnullまたは空文字列だった場合
NoSuchMethodRuntimeException - 一致するメソッドが見つからない場合
関連項目:
Class.getMethod(String, Class...)

getDeclaredMethod

public static Method getDeclaredMethod(Class<?> clazz,
                                       String name,
                                       Class<?>... argTypes)
                                throws NoSuchMethodRuntimeException
Classオブジェクトが表すクラスまたはインタフェースの指定されたメンバメソッドをリフレクトするMethod オブジェクトを返します。

パラメータ:
clazz - クラスのClassオブジェクト。nullであってはいけません
name - メソッドの名前。nullや空文字列であってはいけません
argTypes - パラメータのリスト
戻り値:
指定されたnameおよびargTypesと一致するMethodオブジェクト
例外:
NoSuchMethodRuntimeException - 一致するメソッドが見つからない場合
関連項目:
Class.getDeclaredMethod(String, Class...)

getPackageName

public static String getPackageName(Class<?> clazz)
パッケージ名を返します。

パラメータ:
clazz - クラス。nullであってはいけません
戻り値:
パッケージ名

getShortClassName

public static String getShortClassName(String className)
FQCNからパッケージ名を除いた名前を返します。

パラメータ:
className - クラス名。nullや空文字列であってはいけません
戻り値:
FQCNからパッケージ名を除いた名前

splitPackageAndShortClassName

public static String[] splitPackageAndShortClassName(String className)
FQCNをパッケージ名とFQCNからパッケージ名を除いた名前に分けます。

パラメータ:
className - クラス名。nullや空文字列であってはいけません
戻り値:
パッケージ名とFQCNからパッケージ名を除いた名前

getSimpleClassName

public static String getSimpleClassName(Class<?> clazz)
配列の場合は要素のクラス名に[]を加えた文字列、それ以外はクラス名そのものを返します。

パラメータ:
clazz - クラス。nullであってはいけません
戻り値:
クラス名

getResourcePath

public static String getResourcePath(Class<?> clazz)
クラス名をリソースパスとして表現します。

パラメータ:
clazz - クラス。nullであってはいけません
戻り値:
リソースパス
関連項目:
getResourcePath(String)

getResourcePath

public static String getResourcePath(String className)
クラス名をリソースパスとして表現します。

パラメータ:
className - クラス名。nullや空文字列であってはいけません
戻り値:
リソースパス

concatName

public static String concatName(String s1,
                                String s2)
クラス名の要素を結合します。

パラメータ:
s1 - クラス名の要素1
s2 - クラス名の要素2
戻り値:
結合された名前


Copyright © 2010-2012 The Seasar Foundation. All Rights Reserved.