public abstract class ClassUtils
extends java.lang.ObjectTypeUtils, ReflectionUtils| 修飾子と型 | フィールドと説明 |
|---|---|
static java.lang.String | ARRAY_SUFFIX 配列クラス名のサフィックス: "[]"。 |
static java.lang.String | CGLIB_CLASS_SEPARATORCGLIB クラスセパレーター: "$$". |
static java.lang.String | CLASS_FILE_SUFFIX ".class" ファイルのサフィックス。 |
| コンストラクターと説明 |
|---|
ClassUtils() |
| 修飾子と型 | メソッドと説明 |
|---|---|
static java.lang.String | addResourcePathToPackagePath(java.lang.Class<?> clazz, java.lang.String resourceName)ClassLoader.getResource での使用に適したパスを返します(戻り値の前にスラッシュ('/')を追加することにより、Class.getResource での使用にも適しています)。 |
static java.lang.String | classNamesToString(java.lang.Class<?>... classes) 指定された配列内のクラス / インターフェースの名前で構成される文字列を作成します。 |
static java.lang.String | classNamesToString(java.util.Collection<java.lang.Class<?>> classes) 指定されたコレクション内のクラス / インターフェースの名前で構成される文字列を作成します。 |
static java.lang.String | classPackageAsResourcePath(java.lang.Class<?> clazz) 入力クラスオブジェクトを指定すると、クラスのパッケージ名をパス名として含む文字列を返します。つまり、すべてのドット('.' )をスラッシュ('/')に置き換えます。 |
static java.lang.String | convertClassNameToResourcePath(java.lang.String className) "." -based 完全修飾クラス名を「/"-based リソースパス」に変換します。 |
static java.lang.String | convertResourcePathToClassName(java.lang.String resourcePath)「/"-based リソースパスを "." -based 完全修飾クラス名に変換します。 |
static java.lang.Class<?> | createCompositeInterface(java.lang.Class<?>[] interfaces, java.lang.ClassLoader classLoader) 指定されたインターフェースの複合インターフェースクラスを作成し、指定されたインターフェースを 1 つの単一クラスに実装します。 |
static java.lang.Class<?> | determineCommonAncestor(java.lang.Class<?> clazz1, java.lang.Class<?> clazz2) 指定されたクラスの共通の祖先がある場合、それを決定します。 |
static java.lang.Class<?> | forName(java.lang.String name, java.lang.ClassLoader classLoader) プリミティブのクラスインスタンスも返す Class.forName() の代替(例: |
static java.lang.Class<?>[] | getAllInterfaces(java.lang.Object instance) スーパークラスによって実装されたものも含め、指定されたインスタンスが配列として実装するすべてのインターフェースを返します。 |
static java.util.Set<java.lang.Class<?>> | getAllInterfacesAsSet(java.lang.Object instance) 指定されたインスタンスが Set として実装するすべてのインターフェースを返します。これにはスーパークラスによって実装されたものも含まれます。 |
static java.lang.Class<?>[] | getAllInterfacesForClass(java.lang.Class<?> clazz) 指定されたクラスが配列として実装するすべてのインターフェースを返します(スーパークラスによって実装されたインターフェースを含む)。 |
static java.lang.Class<?>[] | getAllInterfacesForClass(java.lang.Class<?> clazz, java.lang.ClassLoader classLoader) 指定されたクラスが配列として実装するすべてのインターフェースを返します(スーパークラスによって実装されたインターフェースを含む)。 |
static java.util.Set<java.lang.Class<?>> | getAllInterfacesForClassAsSet(java.lang.Class<?> clazz) スーパークラスによって実装されたものを含め、指定されたクラスが Set として実装するすべてのインターフェースを返します。 |
static java.util.Set<java.lang.Class<?>> | getAllInterfacesForClassAsSet(java.lang.Class<?> clazz, java.lang.ClassLoader classLoader) スーパークラスによって実装されたものを含め、指定されたクラスが Set として実装するすべてのインターフェースを返します。 |
static java.lang.String | getClassFileName(java.lang.Class<?> clazz) 含まれるパッケージに関連するクラスファイルの名前を決定します。 |
static <T> java.lang.reflect.Constructor<T> | getConstructorIfAvailable(java.lang.Class<T> clazz, java.lang.Class<?>... paramTypes) 指定されたクラスに指定された署名を持つ public コンストラクターがあるかどうかを判断し、使用可能な場合はそれを返します(そうでない場合は null を返します)。 |
static java.lang.ClassLoader | getDefaultClassLoader() 使用するデフォルト ClassLoader を返します。通常、スレッドコンテキスト ClassLoader(使用可能な場合)。ClassUtils クラスをロードした ClassLoader がフォールバックとして使用されます。 |
static java.lang.String | getDescriptiveType(java.lang.Object value) 指定されたオブジェクトの型を説明する名前を返します。通常は単にクラス名ですが、コンポーネント型のクラス名 + 配列の "[]"、および JDK プロキシの実装済みインターフェースの追加リスト。 |
static java.lang.reflect.Method | getInterfaceMethodIfPossible(java.lang.reflect.Method method) 可能であれば、指定されたメソッドハンドルに対応するインターフェースメソッドを決定します。 |
static java.lang.reflect.Method | getMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes) 指定されたクラスに指定された署名を持つ public メソッドがあるかどうかを判断し、使用可能な場合はそれを返します(そうでない場合は IllegalStateException をスローします)。 |
static int | getMethodCountForName(java.lang.Class<?> clazz, java.lang.String methodName) 指定されたクラスおよび / またはそのスーパークラスについて、指定された名前(引数の型)を持つメソッドの数を返します。 |
static java.lang.reflect.Method | getMethodIfAvailable(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes) 指定されたクラスに指定された署名を持つ public メソッドがあるかどうかを判断し、利用可能な場合はそれを返します(そうでない場合は null を返します)。 |
static java.lang.reflect.Method | getMostSpecificMethod(java.lang.reflect.Method method, java.lang.Class<?> targetClass) インターフェースから取得されるメソッドと、現在のリフレクト呼び出しで使用されるターゲットクラスが指定されている場合、対応するターゲットメソッドがあればそれを見つけます。 |
static java.lang.String | getPackageName(java.lang.Class<?> clazz) 指定されたクラスのパッケージの名前を決定します。 |
static java.lang.String | getPackageName(java.lang.String fqClassName) 指定された完全修飾クラス名のパッケージの名前を決定します。 |
static java.lang.String | getQualifiedMethodName(java.lang.reflect.Method method) 完全修飾インターフェース / クラス名 + "." で構成される、指定されたメソッドの修飾名を返します。+ メソッド名。 |
static java.lang.String | getQualifiedMethodName(java.lang.reflect.Method method, java.lang.Class<?> clazz) 完全修飾インターフェース / クラス名 + "." で構成される、指定されたメソッドの修飾名を返します。+ メソッド名。 |
static java.lang.String | getQualifiedName(java.lang.Class<?> clazz) 指定されたクラスの修飾名を返します。通常は単にクラス名ですが、配列の場合はコンポーネント型クラス名 + "[]"。 |
static java.lang.String | getShortName(java.lang.Class<?> clazz) 修飾パッケージ名なしでクラス名を取得します。 |
static java.lang.String | getShortName(java.lang.String className) 修飾パッケージ名なしでクラス名を取得します。 |
static java.lang.String | getShortNameAsProperty(java.lang.Class<?> clazz)Java クラスの短い文字列名を大文字ではない JavaBeans プロパティ形式で返します。 |
static java.lang.reflect.Method | getStaticMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... args) クラスのパブリック静的メソッドを返します。 |
static java.lang.Class<?> | getUserClass(java.lang.Class<?> clazz) 指定されたクラスのユーザー定義クラスを返します。通常は単に指定されたクラスですが、CGLIB で生成されたサブクラスの場合は元のクラスです。 |
static java.lang.Class<?> | getUserClass(java.lang.Object instance) 指定されたインスタンスのユーザー定義クラスを返します。通常は、単に指定されたインスタンスのクラスですが、CGLIB で生成されたサブクラスの場合は元のクラスです。 |
static boolean | hasAtLeastOneMethodWithName(java.lang.Class<?> clazz, java.lang.String methodName) 指定されたクラスまたはそのスーパークラスの 1 つに、指定された名前(引数の型)を持つメソッドが少なくとも 1 つありますか? 非 public メソッドが含まれます。 |
static boolean | hasConstructor(java.lang.Class<?> clazz, java.lang.Class<?>... paramTypes) 指定されたクラスに、指定された署名を持つ public コンストラクターがあるかどうかを判断します。 |
static boolean | hasMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes) 指定されたクラスに、指定された署名を持つ public メソッドがあるかどうかを判断します。 |
static boolean | isAssignable(java.lang.Class<?> lhsType, java.lang.Class<?> rhsType) リフレクションによる設定を想定して、右側の型を左側の型に割り当てることができるかどうかを確認します。 |
static boolean | isAssignableValue(java.lang.Class<?> type, java.lang.Object value) リフレクションによる設定を想定して、指定された型が指定された値から割り当て可能かどうかを判断します。 |
static boolean | isCacheSafe(java.lang.Class<?> clazz, java.lang.ClassLoader classLoader) 指定されたクラスが指定されたコンテキストでキャッシュセーフかどうかを確認します。 |
static boolean | isCglibProxy(java.lang.Object object) 指定されたオブジェクトが CGLIB プロキシかどうかを確認します。 |
static boolean | isCglibProxyClass(java.lang.Class<?> clazz) 指定されたクラスが CGLIB 生成クラスであるかどうかを確認します。 |
static boolean | isCglibProxyClassName(java.lang.String className) 指定されたクラス名が CGLIB 生成クラスかどうかを確認します。 |
static boolean | isInnerClass(java.lang.Class<?> clazz) 指定されたクラスが内部クラスであるかどうかを決定します。 |
static boolean | isJavaLanguageInterface(java.lang.Class<?> ifc) 指定されたインターフェースが共通の Java 言語インターフェースであるかどうかを確認します。 Serializable、Externalizable、Closeable、AutoCloseable、Cloneable、Comparable -「プライマリ」ユーザーレベルのインターフェースを探す場合、これらはすべて無視できます。 |
static boolean | isPresent(java.lang.String className, java.lang.ClassLoader classLoader) 指定された名前で識別される Class が存在し、ロードできるかどうかを判別します。 |
static boolean | isPrimitiveArray(java.lang.Class<?> clazz) 指定されたクラスがプリミティブの配列を表すかどうかを確認します。 |
static boolean | isPrimitiveOrWrapper(java.lang.Class<?> clazz) 指定されたクラスがプリミティブを表すかどうかを確認します(つまり |
static boolean | isPrimitiveWrapper(java.lang.Class<?> clazz) 指定されたクラスがプリミティブラッパーを表すかどうかを確認します。 |
static boolean | isPrimitiveWrapperArray(java.lang.Class<?> clazz) 指定されたクラスがプリミティブラッパーの配列を表すかどうかを確認します。 |
static boolean | isUserLevelMethod(java.lang.reflect.Method method) 指定されたメソッドがユーザーによって宣言されているか、少なくともユーザーが宣言したメソッドを指しているかを判断します。 |
static boolean | isVisible(java.lang.Class<?> clazz, java.lang.ClassLoader classLoader) 指定されたクラスが指定された ClassLoader に表示されるかどうかを確認します。 |
static boolean | matchesTypeName(java.lang.Class<?> clazz, java.lang.String typeName) 指定されたクラスがユーザー指定の型名と一致するかどうかを確認します。 |
static java.lang.ClassLoader | overrideThreadContextClassLoader(java.lang.ClassLoader classLoaderToUse) 必要に応じて、スレッドコンテキスト ClassLoader を環境の Bean ClassLoader でオーバーライドします。 |
static java.lang.Class<?> | resolveClassName(java.lang.String className, java.lang.ClassLoader classLoader) 指定されたクラス名を Class インスタンスに解決します。 |
static java.lang.Class<?> | resolvePrimitiveClassName(java.lang.String name) 必要に応じて、プリミティブクラスに関する JVM の命名規則に従って、指定されたクラス名をプリミティブクラスとして解決します。 |
static java.lang.Class<?> | resolvePrimitiveIfNecessary(java.lang.Class<?> clazz) 指定されたクラスがプリミティブクラスの場合は解決し、対応するプリミティブラッパー型を代わりに返します。 |
static java.lang.Class<?>[] | toClassArray(java.util.Collection<java.lang.Class<?>> collection) 指定された Collection を Class 配列にコピーします。 |
public static final java.lang.String ARRAY_SUFFIX
"[]"。public static final java.lang.String CGLIB_CLASS_SEPARATOR
"$$".public static final java.lang.String CLASS_FILE_SUFFIX
@Nullable public static java.lang.ClassLoader getDefaultClassLoader()
null 以外の ClassLoader 参照を明確に好むシナリオでスレッドコンテキスト ClassLoader を使用する場合は、このメソッドを呼び出します。たとえば、クラスパスリソースのロード(必ずしも null ClassLoader 参照を受け入れる Class.forName の場合は必要ありません)。
null )Thread.getContextClassLoader(), ClassLoader.getSystemClassLoader()@Nullable public static java.lang.ClassLoader overrideThreadContextClassLoader(@Nullable java.lang.ClassLoader classLoaderToUse)
classLoaderToUse - スレッドコンテキストに使用する実際の ClassLoadernull public static java.lang.Class<?> forName(java.lang.String name,
@Nullable
java.lang.ClassLoader classLoader)
throws java.lang.ClassNotFoundException,
java.lang.LinkageErrorClass.forName() の代替。さらに、Java ソーススタイルで内部クラス名を解決することもできます(たとえば、"java.lang.Thread$State" の代わりに "java.lang.Thread.State" )。name - クラスの名前 classLoader - 使用するクラスローダー (デフォルトのクラスローダーを示す null の場合があります)java.lang.ClassNotFoundException - クラスが見つからなかった場合 java.lang.LinkageError - クラスファイルをロードできなかった場合 Class.forName(String, boolean, ClassLoader)public static java.lang.Class<?> resolveClassName(java.lang.String className,
@Nullable
java.lang.ClassLoader classLoader)
throws java.lang.IllegalArgumentException これは、同じ引数を持つ forName メソッドと事実上同等ですが、唯一の違いは、クラスのロードに失敗した場合にスローされる例外です。
className - クラスの名前 classLoader - 使用するクラスローダー (デフォルトのクラスローダーを示す null の場合があります)java.lang.IllegalArgumentException - クラス名が解決できなかった場合 (つまり、クラスが見つからなかったか、クラスファイルをロードできませんでした)java.lang.IllegalStateException - 対応するクラスは解決可能であるが、クラスの継承階層に可読性の不一致があった場合 (通常、ここにロードされるクラスによって実装されるスーパークラスまたはインターフェースの Jigsaw モジュール定義に欠落している依存関係宣言)forName(String, ClassLoader)public static boolean isPresent(java.lang.String className,
@Nullable
java.lang.ClassLoader classLoader)Class が存在し、ロードできるかどうかを判別します。クラスまたはその依存関係の 1 つが存在しないか、ロードできない場合、false を返します。className - チェックするクラスの名前 classLoader - 使用するクラスローダー (デフォルトのクラスローダーを示す null の場合があります)java.lang.IllegalStateException - 対応するクラスは解決可能であるが、クラスの継承階層に可読性の不一致があった場合 (通常、ここでチェックされるクラスによって実装されるスーパークラスまたはインターフェースの Jigsaw モジュール定義に欠落している依存関係宣言)public static boolean isVisible(java.lang.Class<?> clazz,
@Nullable
java.lang.ClassLoader classLoader)clazz - チェックするクラス (通常はインターフェース)classLoader - チェックする ClassLoader (null の場合があります。この場合、このメソッドは常に true を返します。)public static boolean isCacheSafe(java.lang.Class<?> clazz,
@Nullable
java.lang.ClassLoader classLoader)clazz - 分析するクラス classLoader - メタデータを潜在的にキャッシュする ClassLoader (システムクラスローダーを示す null )@Nullable public static java.lang.Class<?> resolvePrimitiveClassName(@Nullable java.lang.String name)
プリミティブ配列の JVM の内部クラス名もサポートします。プリミティブ配列の "[]" サフィックス表記はサポートされていません。これは forName(String, ClassLoader) でのみサポートされています。
name - 潜在的にプリミティブなクラスの名前 null public static boolean isPrimitiveWrapper(java.lang.Class<?> clazz)
clazz - チェックするクラス public static boolean isPrimitiveOrWrapper(java.lang.Class<?> clazz)
clazz - チェックするクラス public static boolean isPrimitiveArray(java.lang.Class<?> clazz)
clazz - チェックするクラス public static boolean isPrimitiveWrapperArray(java.lang.Class<?> clazz)
clazz - チェックするクラス public static java.lang.Class<?> resolvePrimitiveIfNecessary(java.lang.Class<?> clazz)
clazz - チェックするクラス public static boolean isAssignable(java.lang.Class<?> lhsType,
java.lang.Class<?> rhsType)lhsType - ターゲット型 rhsType - ターゲットの型に割り当てられる値の型 TypeUtils.isAssignable(java.lang.reflect.Type, java.lang.reflect.Type)public static boolean isAssignableValue(java.lang.Class<?> type,
@Nullable
java.lang.Object value)type - ターゲット型 value - 型に割り当てられる値 public static java.lang.String convertResourcePathToClassName(java.lang.String resourcePath)
resourcePath - クラスを指すリソースパス public static java.lang.String convertClassNameToResourcePath(java.lang.String className)
className - 完全修飾クラス名 public static java.lang.String addResourcePathToPackagePath(java.lang.Class<?> clazz,
java.lang.String resourceName)ClassLoader.getResource での使用に適したパスを返します (戻り値の前にスラッシュ ('/') を追加することにより、Class.getResource での使用にも適しています)。指定されたクラスファイルのパッケージを取得し、すべてのドット ('.') をスラッシュに変換してビルドされます ('/'), 必要に応じて末尾にスラッシュを追加し、指定されたリソース名をこれに連結します。ClassPathResource の方が便利です。clazz - パッケージがベースとして使用されるクラス resourceName - 追加するリソース名。先頭のスラッシュはオプションです。ClassLoader.getResource(java.lang.String), Class.getResource(java.lang.String)public static java.lang.String classPackageAsResourcePath(@Nullable java.lang.Class<?> clazz)
ClassLoader.getResource() に直接供給されます。代わりに Class.getResource に送るには、戻り値の前にスラッシュを付ける必要があります。clazz - 入力クラス。null 値またはデフォルト(空)のパッケージでは、空の文字列("")が返されます。ClassLoader.getResource(java.lang.String), Class.getResource(java.lang.String)public static java.lang.String classNamesToString(java.lang.Class<?>... classes)
基本的に AbstractCollection.toString() に似ていますが、すべてのクラス名の前にある「クラス "/"interface " プレフィックス」を削除します。
classes - Class オブジェクトの配列 AbstractCollection.toString()public static java.lang.String classNamesToString(@Nullable java.util.Collection<java.lang.Class<?>> classes)
基本的に AbstractCollection.toString() に似ていますが、すべてのクラス名の前にある「クラス "/"interface " プレフィックス」を削除します。
classes - Class オブジェクトのコレクション (null の場合があります)AbstractCollection.toString()public static java.lang.Class<?>[] toClassArray(java.util.Collection<java.lang.Class<?>> collection)
Collection を Class 配列にコピーします。Collection には Class 要素のみが含まれている必要があります。
collection - コピーする Collection Class 配列 StringUtils.toStringArray(java.util.Collection<java.lang.String>)public static java.lang.Class<?>[] getAllInterfaces(java.lang.Object instance)
instance - インターフェースを分析するインスタンス public static java.lang.Class<?>[] getAllInterfacesForClass(java.lang.Class<?> clazz)
クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス public static java.lang.Class<?>[] getAllInterfacesForClass(java.lang.Class<?> clazz,
@Nullable
java.lang.ClassLoader classLoader)クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス classLoader - インターフェースを表示する必要がある ClassLoader (宣言されたすべてのインターフェースを受け入れる場合、null になる可能性があります)public static java.util.Set<java.lang.Class<?>> getAllInterfacesAsSet(java.lang.Object instance)
instance - インターフェースを分析するインスタンス public static java.util.Set<java.lang.Class<?>> getAllInterfacesForClassAsSet(java.lang.Class<?> clazz)
クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス public static java.util.Set<java.lang.Class<?>> getAllInterfacesForClassAsSet(java.lang.Class<?> clazz,
@Nullable
java.lang.ClassLoader classLoader)クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス classLoader - インターフェースを表示する必要がある ClassLoader (宣言されたすべてのインターフェースを受け入れる場合、null になる可能性があります)public static java.lang.Class<?> createCompositeInterface(java.lang.Class<?>[] interfaces,
@Nullable
java.lang.ClassLoader classLoader)この実装は、指定されたインターフェースの JDK プロキシクラスを構築します。
interfaces - マージするインターフェース classLoader - ClassLoader で複合クラスを作成します java.lang.IllegalArgumentException - 指定されたインターフェースが競合するメソッドシグネチャーを公開する場合 (または同様の制約に違反している)Proxy.getProxyClass(java.lang.ClassLoader, java.lang.Class<?>...)@Nullable public static java.lang.Class<?> determineCommonAncestor(@Nullable java.lang.Class<?> clazz1, @Nullable java.lang.Class<?> clazz2)
clazz1 - イントロスペクトするクラス clazz2 - イントロスペクトする他のクラス null が見つからない場合。指定されたクラスのいずれかが null の場合、他のクラスが返されます。public static boolean isJavaLanguageInterface(java.lang.Class<?> ifc)
Serializable、Externalizable、Closeable、AutoCloseable、Cloneable、Comparable -「プライマリ」ユーザーレベルのインターフェースを探す場合、これらはすべて無視できます。共通の特徴: サービスレベルの操作、Bean プロパティメソッド、デフォルトメソッドはありません。ifc - チェックするインターフェース public static boolean isInnerClass(java.lang.Class<?> clazz)
true (提供されたクラスが内部クラスの場合)Class.isMemberClass()public static boolean isCglibProxy(java.lang.Object object)
object - チェックするオブジェクト isCglibProxyClass(Class), AopUtils.isCglibProxy(Object)public static boolean isCglibProxyClass(@Nullable java.lang.Class<?> clazz)
clazz - チェックするクラス isCglibProxyClassName(String)public static boolean isCglibProxyClassName(@Nullable java.lang.String className)
className - チェックするクラス名 public static java.lang.Class<?> getUserClass(java.lang.Object instance)
instance - チェックするインスタンス public static java.lang.Class<?> getUserClass(java.lang.Class<?> clazz)
clazz - チェックするクラス @Nullable public static java.lang.String getDescriptiveType(@Nullable java.lang.Object value)
value - イントロスペクトする価値 public static boolean matchesTypeName(java.lang.Class<?> clazz,
@Nullable
java.lang.String typeName)clazz - チェックするクラス typeName - 一致する型名 public static java.lang.String getShortName(java.lang.String className)
className - className の短縮名を取得するには java.lang.IllegalArgumentException - className が空の場合 public static java.lang.String getShortName(java.lang.Class<?> clazz)
clazz - 短い名前を取得するクラス public static java.lang.String getShortNameAsProperty(java.lang.Class<?> clazz)
clazz - クラス Introspector.decapitalize(String)public static java.lang.String getClassFileName(java.lang.Class<?> clazz)
clazz - クラス public static java.lang.String getPackageName(java.lang.Class<?> clazz)
java.lang.String クラスの "java.lang"。clazz - クラス public static java.lang.String getPackageName(java.lang.String fqClassName)
java.lang.String クラス名の "java.lang"。fqClassName - 完全修飾クラス名 public static java.lang.String getQualifiedName(java.lang.Class<?> clazz)
clazz - クラス public static java.lang.String getQualifiedMethodName(java.lang.reflect.Method method)
method - メソッド public static java.lang.String getQualifiedMethodName(java.lang.reflect.Method method,
@Nullable
java.lang.Class<?> clazz)method - メソッド clazz - メソッドが呼び出されている場所 (メソッドの宣言クラスを示す null の場合があります)public static boolean hasConstructor(java.lang.Class<?> clazz,
java.lang.Class<?>... paramTypes) 基本的に NoSuchMethodException を "false" に変換します。
clazz - 分析するクラブ paramTypes - メソッドのパラメーター型 Class.getMethod(java.lang.String, java.lang.Class<?>...)@Nullable public static <T> java.lang.reflect.Constructor<T> getConstructorIfAvailable(java.lang.Class<T> clazz, java.lang.Class<?>... paramTypes)
null を返します)。 本質的に NoSuchMethodException を null に変換します。
clazz - 分析するクラブ paramTypes - メソッドのパラメーター型 null Class.getConstructor(java.lang.Class<?>...)public static boolean hasMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... paramTypes) 基本的に NoSuchMethodException を "false" に変換します。
clazz - 分析するクラブ methodName - メソッドの名前 paramTypes - メソッドのパラメーター型 Class.getMethod(java.lang.String, java.lang.Class<?>...)public static java.lang.reflect.Method getMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
@Nullable
java.lang.Class<?>... paramTypes)IllegalStateException をスローします)。署名が指定されている場合は、一意の候補、つまり指定された名前の単一の public メソッドがある場合にのみメソッドを返します。
本質的に NoSuchMethodException を IllegalStateException に変換します。
clazz - 分析するクラブ methodName - メソッドの名前 paramTypes - メソッドのパラメーター型 (署名を示す null の場合があります)null ではない)java.lang.IllegalStateException - メソッドが見つからなかった場合 Class.getMethod(java.lang.String, java.lang.Class<?>...)@Nullable public static java.lang.reflect.Method getMethodIfAvailable(java.lang.Class<?> clazz, java.lang.String methodName, @Nullable java.lang.Class<?>... paramTypes)
null を返します)。署名が指定されている場合は、一意の候補、つまり指定された名前の単一の public メソッドがある場合にのみメソッドを返します。
本質的に NoSuchMethodException を null に変換します。
clazz - 分析するクラブ methodName - メソッドの名前 paramTypes - メソッドのパラメーター型 (署名を示す null の場合があります)null Class.getMethod(java.lang.String, java.lang.Class<?>...)public static int getMethodCountForName(java.lang.Class<?> clazz,
java.lang.String methodName)clazz - チェックするクラズ methodName - メソッドの名前 public static boolean hasAtLeastOneMethodWithName(java.lang.Class<?> clazz,
java.lang.String methodName)clazz - チェックするクラズ methodName - メソッドの名前 public static java.lang.reflect.Method getMostSpecificMethod(java.lang.reflect.Method method,
@Nullable
java.lang.Class<?> targetClass)IFoo.bar() で、ターゲットクラスは DefaultFoo です。この場合、メソッドは DefaultFoo.bar() になります。これにより、そのメソッドの属性を見つけることができます。 注 :AopUtils.getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>) とは異なり、このメソッドは Java 5 ブリッジメソッドを自動的に解決しません。ブリッジメソッドの解決が望ましい場合(たとえば、元のメソッド定義からメタデータを取得する場合)、BridgeMethodResolver.findBridgedMethod(java.lang.reflect.Method) を呼び出します。
注 :Spring 3.1.1 以降、Java セキュリティ設定でリフレクティブアクセスが許可されていない場合(たとえば、Class#getDeclaredMethods の呼び出しなど)、この実装は最初に提供されたメソッドを返すことにフォールバックします。
method - 呼び出されるメソッド。インターフェースから取得される場合があります targetClass - 現在の呼び出しのターゲットクラス (null であるか、メソッドを実装していない可能性があります)targetClass がそれを実装していない場合は元のメソッド getInterfaceMethodIfPossible(java.lang.reflect.Method)public static java.lang.reflect.Method getInterfaceMethodIfPossible(java.lang.reflect.Method method)
これは、Jigsaw の公開エクスポート型に到達する場合に特に役立ちます。Jigsaw は、不正アクセス警告なしで反射的に呼び出すことができます。
method - 呼び出されるメソッド、場合によっては実装クラスから getMostSpecificMethod(java.lang.reflect.Method, java.lang.Class<?>)public static boolean isUserLevelMethod(java.lang.reflect.Method method)
Method.isSynthetic() (実装メソッドの場合)および GroovyObject インターフェース(インターフェースメソッドの場合。実装クラスでは、GroovyObject メソッドの実装は合成としてマークされます)をチェックします。合成であるにもかかわらず、ブリッジメソッド(Method.isBridge())は、最終的にユーザーが宣言したジェネリクスメソッドを指すため、ユーザーレベルのメソッドと見なされることに注意してください。
method - チェックする方法 true (メソッドがユーザー宣言と見なされる場合)。[@code false} それ以外の場合 @Nullable public static java.lang.reflect.Method getStaticMethod(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... args)
clazz - メソッドを定義するクラス methodName - 静的メソッド名 args - メソッドへのパラメーターの型 null java.lang.IllegalArgumentException - メソッド名が空白または clazz が null の場合