public abstract class BeanUtils
extends java.lang.Object主にフレームワーク内で使用しますが、アプリケーションクラスにもある程度役立ちます。
| コンストラクターと説明 |
|---|
BeanUtils() |
| 修飾子と型 | メソッドと説明 |
|---|---|
static void | copyProperties(java.lang.Object source, java.lang.Object target) 指定されたソース Bean のプロパティ値をターゲット Bean にコピーします。 |
static void | copyProperties(java.lang.Object source, java.lang.Object target, java.lang.Class<?> editable) 特定のソース Bean のプロパティ値を特定のターゲット Bean にコピーし、特定の「編集可能な」クラス(またはインターフェース)で定義されたプロパティのみを設定します。 |
static void | copyProperties(java.lang.Object source, java.lang.Object target, java.lang.String... ignoreProperties) 指定された "ignoreProperties" を無視して、指定されたソース Bean のプロパティ値を指定されたターゲット Bean にコピーします。 |
static java.lang.reflect.Method | findDeclaredMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes) 指定されたクラスまたはそのスーパークラスの 1 つで宣言された、指定されたメソッド名と指定されたパラメーター型を持つメソッドを検索します。 |
static java.lang.reflect.Method | findDeclaredMethodWithMinimalParameters(java.lang.Class<?> clazz, java.lang.String methodName) 指定されたクラスまたはそのスーパークラスの 1 つで宣言された、指定されたメソッド名と最小パラメーター(最良の場合: なし)を持つメソッドを見つけます。 |
static java.beans.PropertyEditor | findEditorByConvention(java.lang.Class<?> targetType) "Editor" 接尾辞の規則に従って JavaBeans PropertyEditor を見つけます(例: |
static java.lang.reflect.Method | findMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes) 指定されたクラスまたはそのスーパークラスの 1 つで宣言された、指定されたメソッド名と指定されたパラメーター型を持つメソッドを検索します。 |
static java.lang.reflect.Method | findMethodWithMinimalParameters(java.lang.Class<?> clazz, java.lang.String methodName) 指定されたクラスまたはそのスーパークラスの 1 つで宣言された、指定されたメソッド名と最小パラメーター(最良の場合: なし)を持つメソッドを見つけます。 |
static java.lang.reflect.Method | findMethodWithMinimalParameters(java.lang.reflect.Method[] methods, java.lang.String methodName) 指定されたメソッドのリストで、指定されたメソッド名と最小パラメーター(最良の場合: なし)を持つメソッドを見つけます。 |
static <T> java.lang.reflect.Constructor<T> | findPrimaryConstructor(java.lang.Class<T> clazz) 指定されたクラスのプライマリコンストラクターを返します。 |
static java.beans.PropertyDescriptor | findPropertyForMethod(java.lang.reflect.Method method) 指定されたメソッドの JavaBeans PropertyDescriptor を検索します。メソッドは、その Bean プロパティの読み取りメソッドまたは書き込みメソッドのいずれかです。 |
static java.beans.PropertyDescriptor | findPropertyForMethod(java.lang.reflect.Method method, java.lang.Class<?> clazz) 指定されたメソッドの JavaBeans PropertyDescriptor を検索します。メソッドは、その Bean プロパティの読み取りメソッドまたは書き込みメソッドのいずれかです。 |
static java.lang.Class<?> | findPropertyType(java.lang.String propertyName, java.lang.Class<?>... beanClasses) 可能な場合、指定されたクラス / インターフェースから指定されたプロパティの Bean プロパティ型を決定します。 |
static java.beans.PropertyDescriptor | getPropertyDescriptor(java.lang.Class<?> clazz, java.lang.String propertyName) 指定されたプロパティの JavaBeans PropertyDescriptors を取得します。 |
static java.beans.PropertyDescriptor[] | getPropertyDescriptors(java.lang.Class<?> clazz) 指定されたクラスの JavaBeans PropertyDescriptor を取得します。 |
static MethodParameter | getWriteMethodParameter(java.beans.PropertyDescriptor pd) 指定されたプロパティの書き込みメソッドの新しい MethodParameter オブジェクトを取得します。 |
static <T> T | instantiate(java.lang.Class<T> clazz) 使用すべきではありません。 JDK 9 での Class.newInstance() の廃止に伴い、Spring 5.0 以降 |
static <T> T | instantiateClass(java.lang.Class<?> clazz, java.lang.Class<T> assignableTo) 引数なしのコンストラクターを使用してクラスをインスタンス化し、指定された割り当て可能な型として新しいインスタンスを返します。 |
static <T> T | instantiateClass(java.lang.Class<T> clazz) "primary" コンストラクター(Kotlin クラスの場合、デフォルト引数が宣言されている可能性がある)またはデフォルトコンストラクター(通常の Java クラスの場合、標準の引数なしのセットアップが必要)を使用してクラスをインスタンス化します。 |
static <T> T | instantiateClass(java.lang.reflect.Constructor<T> ctor, java.lang.Object... args) 指定されたコンストラクターを使用してクラスをインスタンス化する便利なメソッド。 |
static boolean | isSimpleProperty(java.lang.Class<?> clazz) 指定された型が「単純な」プロパティを表すかどうかを確認します: プリミティブ、ストリングまたは他の CharSequence、数値、日付、URI、URL、ロケール、クラス、対応する配列。 |
static boolean | isSimpleValueType(java.lang.Class<?> clazz) 指定された型が「単純な」値型を表すかどうかを確認します: プリミティブ、enum、String または他の CharSequence、Number、Date、URI、URL、Locale または Class。 |
static java.lang.reflect.Method | resolveSignature(java.lang.String signature, java.lang.Class<?> clazz)methodName[([arg_list])] の形式でメソッドシグネチャーを解析します。arg_list はオプションの完全修飾型名のコンマ区切りリストで、指定された Class に対してそのシグネチャーを解決しようとします。 |
@Deprecated
public static <T> T instantiate(java.lang.Class<T> clazz)
throws BeanInstantiationExceptionClass.newInstance() の廃止に伴い、Spring 5.0 以降 clazz - インスタンス化するクラス BeanInstantiationException - Bean をインスタンス化できない場合 Class.newInstance()public static <T> T instantiateClass(java.lang.Class<T> clazz)
throws BeanInstantiationExceptionこのメソッドは、アクセスできない(つまり、非パブリック)コンストラクターが指定された場合、コンストラクターをアクセス可能に設定しようとすることに注意してください。
clazz - インスタンス化するクラス BeanInstantiationException - Bean をインスタンス化できない場合。原因は、プライマリ / デフォルトコンストラクターが見つからなかった場合の NoSuchMethodException、解決できないクラス定義の場合の NoClassDefFoundError または他の LinkageError (たとえば、実行時の依存関係の欠落による)、コンストラクターの呼び出し自体からスローされた例外を顕著に示す可能性があります。Constructor.newInstance(java.lang.Object...)public static <T> T instantiateClass(java.lang.Class<?> clazz,
java.lang.Class<T> assignableTo)
throws BeanInstantiationExceptionインスタンス化するクラスの型 (clazz) が利用できないが、必要な型 (assignableTo) がわかっている場合に便利です。
このメソッドは、アクセスできない(つまり、非パブリック)コンストラクターが指定された場合、コンストラクターをアクセス可能に設定しようとすることに注意してください。
clazz - インスタンス化するクラス assignableTo - clazz は assignableTo でなければならないと入力してください BeanInstantiationException - Bean をインスタンス化できない場合 Constructor.newInstance(java.lang.Object...)public static <T> T instantiateClass(java.lang.reflect.Constructor<T> ctor,
java.lang.Object... args)
throws BeanInstantiationExceptionこのメソッドは、アクセスできない(つまり、非パブリック)コンストラクターが指定された場合、コンストラクターをアクセス可能に設定しようとし、オプションのパラメーターとデフォルト値を持つ Kotlin クラスをサポートすることに注意してください。
ctor - インスタンス化するコンストラクター args - 適用するコンストラクター引数 (オプションのパラメーターとデフォルト値を持つ Kotlin クラスに必要な場合、指定されていないパラメーターに null を使用します)BeanInstantiationException - Bean をインスタンス化できない場合 Constructor.newInstance(java.lang.Object...)@Nullable public static <T> java.lang.reflect.Constructor<T> findPrimaryConstructor(java.lang.Class<T> clazz)
null を返します。clazz - チェックするクラス @Nullable public static java.lang.reflect.Method findMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes)
Class.getMethod を最初にチェックし、findDeclaredMethod にフォールバックします。これにより、Java セキュリティ設定が制限されている環境でも課題なく public メソッドを見つけることができます。
clazz - チェックするクラス methodName - 検索するメソッドの名前 paramTypes - 検索するメソッドのパラメーター型 null Class.getMethod(java.lang.String, java.lang.Class<?>...), findDeclaredMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>...)@Nullable public static java.lang.reflect.Method findDeclaredMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes)
Class.getDeclaredMethod をチェックし、すべてのスーパークラスに上向きにカスケードします。
clazz - チェックするクラス methodName - 検索するメソッドの名前 paramTypes - 検索するメソッドのパラメーター型 null Class.getDeclaredMethod(java.lang.String, java.lang.Class<?>...)@Nullable public static java.lang.reflect.Method findMethodWithMinimalParameters(java.lang.Class<?> clazz, java.lang.String methodName) throws java.lang.IllegalArgumentException
Class.getMethods を最初にチェックし、findDeclaredMethodWithMinimalParameters にフォールバックします。これにより、Java セキュリティ設定が制限されている環境でも、課題なく public メソッドを見つけることができます。
clazz - チェックするクラス methodName - 検索するメソッドの名前 null java.lang.IllegalArgumentException - 指定された名前のメソッドは見つかったが、最小限のパラメーターで一意のメソッドに解決できなかった場合 Class.getMethods(), findDeclaredMethodWithMinimalParameters(java.lang.Class<?>, java.lang.String)@Nullable public static java.lang.reflect.Method findDeclaredMethodWithMinimalParameters(java.lang.Class<?> clazz, java.lang.String methodName) throws java.lang.IllegalArgumentException
Class.getDeclaredMethods をチェックし、すべてのスーパークラスに上向きにカスケードします。
clazz - チェックするクラス methodName - 検索するメソッドの名前 null java.lang.IllegalArgumentException - 指定された名前のメソッドは見つかったが、最小限のパラメーターで一意のメソッドに解決できなかった場合 Class.getDeclaredMethods()@Nullable public static java.lang.reflect.Method findMethodWithMinimalParameters(java.lang.reflect.Method[] methods, java.lang.String methodName) throws java.lang.IllegalArgumentException
methods - チェックするメソッド methodName - 検索するメソッドの名前 null java.lang.IllegalArgumentException - 指定された名前のメソッドは見つかったが、最小限のパラメーターで一意のメソッドに解決できなかった場合 @Nullable public static java.lang.reflect.Method resolveSignature(java.lang.String signature, java.lang.Class<?> clazz)
methodName[([arg_list])] の形式でメソッドシグネチャーを解析します。arg_list はオプションの完全修飾型名のコンマ区切りリストで、指定された Class に対してそのシグネチャーを解決しようとします。 引数リスト(methodName)を指定しない場合、名前が一致し、パラメーターの数が最も少ないメソッドが返されます。引数の型のリストを指定すると、名前と引数の型が一致するメソッドのみが返されます。
methodName と methodName() は同じ方法で解決されないことに注意してください。署名 methodName は、引数の数が最も少ない methodName と呼ばれるメソッドを意味しますが、methodName() は、引数が正確に 0 の methodName と呼ばれるメソッドを意味します。
メソッドが見つからない場合、null が返されます。
signature - 文字列表現としてのメソッドシグネチャー clazz - メソッドシグネチャーを解決するクラス findMethod(java.lang.Class<?>, java.lang.String, java.lang.Class<?>...), findMethodWithMinimalParameters(java.lang.Class<?>, java.lang.String)public static java.beans.PropertyDescriptor[] getPropertyDescriptors(java.lang.Class<?> clazz)
throws BeansExceptionPropertyDescriptor を取得します。clazz - PropertyDescriptors を取得するクラス PropertyDescriptors の配列 BeansException - PropertyDescriptor の外観が失敗した場合 @Nullable public static java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.Class<?> clazz, java.lang.String propertyName) throws BeansException
PropertyDescriptors を取得します。clazz - PropertyDescriptor を取得するクラス propertyName - プロパティの名前 null BeansException - PropertyDescriptor ルックアップが失敗した場合 @Nullable public static java.beans.PropertyDescriptor findPropertyForMethod(java.lang.reflect.Method method) throws BeansException
PropertyDescriptor を検索します。メソッドは、その Bean プロパティの読み取りメソッドまたは書き込みメソッドのいずれかです。method - 対応する PropertyDescriptor を見つけるメソッド、その宣言クラスをイントロスペクトする null BeansException - PropertyDescriptor ルックアップが失敗した場合 @Nullable public static java.beans.PropertyDescriptor findPropertyForMethod(java.lang.reflect.Method method, java.lang.Class<?> clazz) throws BeansException
PropertyDescriptor を検索します。メソッドは、その Bean プロパティの読み取りメソッドまたは書き込みメソッドのいずれかです。method - 対応する PropertyDescriptor を見つける方法 clazz - 記述子をイントロスペクトする(最も具体的な)クラス null BeansException - PropertyDescriptor ルックアップが失敗した場合 @Nullable public static java.beans.PropertyEditor findEditorByConvention(@Nullable java.lang.Class<?> targetType)
PropertyEditorManager によって実装される標準 JavaBeans 規則と互換性がありますが、プリミティブ型の後者の登録済みデフォルトエディターからは分離されています。
targetType - エディターを見つけるための型 null public static java.lang.Class<?> findPropertyType(java.lang.String propertyName,
@Nullable
java.lang.Class<?>... beanClasses)propertyName - Bean プロパティの名前 beanClasses - チェックするクラス Object.class public static MethodParameter getWriteMethodParameter(java.beans.PropertyDescriptor pd)
pd - プロパティの PropertyDescriptorpublic static boolean isSimpleProperty(java.lang.Class<?> clazz)
「単純な」依存関係チェックをチェックするためのプロパティを決定するために使用されます。
clazz - チェックする型 AbstractBeanDefinition.DEPENDENCY_CHECK_SIMPLE, AbstractAutowireCapableBeanFactory.checkDependencies(java.lang.String, org.springframework.beans.factory.support.AbstractBeanDefinition, java.beans.PropertyDescriptor[], org.springframework.beans.PropertyValues)public static boolean isSimpleValueType(java.lang.Class<?> clazz)
clazz - チェックする型 public static void copyProperties(java.lang.Object source,
java.lang.Object target)
throws BeansExceptionメモ: プロパティが一致する限り、ソースクラスとターゲットクラスは一致する必要はなく、相互に派生する必要もありません。ソース Bean が公開するが、ターゲット Bean は公開しない Bean プロパティは、確認なしで無視されます。
これは単なる便利なメソッドです。より複雑な転送が必要な場合は、完全な BeanWrapper の使用を検討してください。
source - ソース Beantarget - ターゲット BeanBeansException - コピーが失敗した場合 BeanWrapperpublic static void copyProperties(java.lang.Object source,
java.lang.Object target,
java.lang.Class<?> editable)
throws BeansExceptionメモ: プロパティが一致する限り、ソースクラスとターゲットクラスは一致する必要はなく、相互に派生する必要もありません。ソース Bean が公開するが、ターゲット Bean は公開しない Bean プロパティは、確認なしで無視されます。
これは単なる便利なメソッドです。より複雑な転送が必要な場合は、完全な BeanWrapper の使用を検討してください。
source - ソース Beantarget - ターゲット Beaneditable - プロパティ設定を制限するクラス(またはインターフェース)BeansException - コピーが失敗した場合 BeanWrapperpublic static void copyProperties(java.lang.Object source,
java.lang.Object target,
java.lang.String... ignoreProperties)
throws BeansExceptionメモ: プロパティが一致する限り、ソースクラスとターゲットクラスは一致する必要はなく、相互に派生する必要もありません。ソース Bean が公開するが、ターゲット Bean は公開しない Bean プロパティは、確認なしで無視されます。
これは単なる便利なメソッドです。より複雑な転送が必要な場合は、完全な BeanWrapper の使用を検討してください。
source - ソース Beantarget - ターゲット BeanignoreProperties - 無視するプロパティ名の配列 BeansException - コピーが失敗した場合 BeanWrapper