public abstract class ClassUtils extends ObjectSE
TypeUtils, ReflectionUtils| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | ARRAY_SUFFIX 配列クラス名のサフィックス: "[]" |
static StringSE | CGLIB_CLASS_SEPARATORCGLIB クラスセパレーター: "$$" |
static StringSE | CLASS_FILE_SUFFIX ".class" ファイルのサフィックス |
| コンストラクターと説明 |
|---|
ClassUtils() |
| 修飾子と型 | メソッドと説明 |
|---|---|
static StringSE | addResourcePathToPackagePath(ClassSE<?> clazz, StringSE resourceName)ClassLoader.getResource での使用に適したパスを返します(戻り値の前にスラッシュ('/')を追加することにより、Class.getResource での使用にも適しています)。 |
static StringSE | classNamesToString(ClassSE<?>... classes) 指定された配列内のクラス / インターフェースの名前で構成される文字列を作成します。 |
static StringSE | classNamesToString(CollectionSE<ClassSE<?>> classes) 指定されたコレクション内のクラス / インターフェースの名前で構成される文字列を作成します。 |
static StringSE | classPackageAsResourcePath(ClassSE<?> clazz) 入力クラスオブジェクトを指定すると、クラスのパッケージ名をパス名として含む文字列を返します。つまり、すべてのドット('.' )をスラッシュ('/')に置き換えます。 |
static StringSE | convertClassNameToResourcePath(StringSE className) "." -based 完全修飾クラス名を「/"-based リソースパス」に変換します。 |
static StringSE | convertResourcePathToClassName(StringSE resourcePath)「/"-based リソースパスを "." -based 完全修飾クラス名に変換します。 |
static ClassSE<?> | createCompositeInterface(ClassSE<?>[] interfaces, ClassLoaderSE classLoader) 指定されたインターフェースの複合インターフェースクラスを作成し、指定されたインターフェースを 1 つの単一クラスに実装します。 |
static ClassSE<?> | determineCommonAncestor(ClassSE<?> clazz1, ClassSE<?> clazz2) 指定されたクラスの共通の祖先がある場合、それを決定します。 |
static ClassSE<?> | forName(StringSE name, ClassLoaderSE classLoader) プリミティブのクラスインスタンスも返す Class.forName() の代替(例: |
static ClassSE<?>[] | getAllInterfaces(ObjectSE instance) 指定されたインスタンスがスーパークラスによって実装されたものを含む配列として実装するすべてのインターフェースを返します。 |
static SetSE<ClassSE<?>> | getAllInterfacesAsSet(ObjectSE instance) 指定されたインスタンスが Set として実装するすべてのインターフェースを返します。これにはスーパークラスによって実装されたものも含まれます。 |
static ClassSE<?>[] | getAllInterfacesForClass(ClassSE<?> clazz) 指定されたクラスが配列として実装するすべてのインターフェースを返します(スーパークラスによって実装されたインターフェースを含む)。 |
static ClassSE<?>[] | getAllInterfacesForClass(ClassSE<?> clazz, ClassLoaderSE classLoader) 指定されたクラスが配列として実装するすべてのインターフェースを返します(スーパークラスによって実装されたインターフェースを含む)。 |
static SetSE<ClassSE<?>> | getAllInterfacesForClassAsSet(ClassSE<?> clazz) スーパークラスによって実装されたものを含め、指定されたクラスが Set として実装するすべてのインターフェースを返します。 |
static SetSE<ClassSE<?>> | getAllInterfacesForClassAsSet(ClassSE<?> clazz, ClassLoaderSE classLoader) スーパークラスによって実装されたものを含め、指定されたクラスが Set として実装するすべてのインターフェースを返します。 |
static StringSE | getClassFileName(ClassSE<?> clazz) 含まれるパッケージに関連するクラスファイルの名前を決定します。 |
static <T> ConstructorSE<T> | getConstructorIfAvailable(ClassSE<T> clazz, ClassSE<?>... paramTypes) 指定されたクラスに指定された署名を持つ public コンストラクターがあるかどうかを判断し、使用可能な場合はそれを返します(そうでない場合は null を返します)。 |
static ClassLoaderSE | getDefaultClassLoader() 使用するデフォルト ClassLoader を返します。通常、スレッドコンテキスト ClassLoader(使用可能な場合)。ClassUtils クラスをロードした ClassLoader がフォールバックとして使用されます。 |
static StringSE | getDescriptiveType(ObjectSE value) 指定されたオブジェクトの型を説明する名前を返します。通常は単にクラス名ですが、コンポーネント型のクラス名 + 配列の "[]"、および JDK プロキシの実装済みインターフェースの追加リスト。 |
static MethodSE | getMethod(ClassSE<?> clazz, StringSE methodName, ClassSE<?>... paramTypes) 指定されたクラスに指定された署名を持つ public メソッドがあるかどうかを判断し、使用可能な場合はそれを返します(そうでない場合は IllegalStateException をスローします)。 |
static int | getMethodCountForName(ClassSE<?> clazz, StringSE methodName) 指定されたクラスおよび / またはそのスーパークラスについて、指定された名前(引数の型)を持つメソッドの数を返します。 |
static MethodSE | getMethodIfAvailable(ClassSE<?> clazz, StringSE methodName, ClassSE<?>... paramTypes) 指定されたクラスに指定された署名を持つ public メソッドがあるかどうかを判断し、利用可能な場合はそれを返します(そうでない場合は null を返します)。 |
static MethodSE | getMostSpecificMethod(MethodSE method, ClassSE<?> targetClass) インターフェースから取得されるメソッドと、現在のリフレクト呼び出しで使用されるターゲットクラスが指定されている場合、対応するターゲットメソッドがあればそれを見つけます。 |
static StringSE | getPackageName(ClassSE<?> clazz) 指定されたクラスのパッケージの名前を決定します。 |
static StringSE | getPackageName(StringSE fqClassName) 指定された完全修飾クラス名のパッケージの名前を決定します。 |
static StringSE | getQualifiedMethodName(MethodSE method) 完全修飾インターフェース / クラス名 + "." で構成される、指定されたメソッドの修飾名を返します。+ メソッド名。 |
static StringSE | getQualifiedMethodName(MethodSE method, ClassSE<?> clazz) 完全修飾インターフェース / クラス名 + "." で構成される、指定されたメソッドの修飾名を返します。+ メソッド名。 |
static StringSE | getQualifiedName(ClassSE<?> clazz) 指定されたクラスの修飾名を返します。通常は単にクラス名ですが、配列の場合はコンポーネント型クラス名 + "[]"。 |
static StringSE | getShortName(ClassSE<?> clazz) 修飾パッケージ名なしでクラス名を取得します。 |
static StringSE | getShortName(StringSE className) 修飾パッケージ名なしでクラス名を取得します。 |
static StringSE | getShortNameAsProperty(ClassSE<?> clazz)Java クラスの短い文字列名を大文字ではない JavaBeans プロパティ形式で返します。 |
static MethodSE | getStaticMethod(ClassSE<?> clazz, StringSE methodName, ClassSE<?>... args) クラスのパブリック静的メソッドを返します。 |
static ClassSE<?> | getUserClass(ClassSE<?> clazz) 指定されたクラスのユーザー定義クラスを返します。通常は単に指定されたクラスですが、CGLIB で生成されたサブクラスの場合は元のクラスです。 |
static ClassSE<?> | getUserClass(ObjectSE instance) 指定されたインスタンスのユーザー定義クラスを返します。通常は、単に指定されたインスタンスのクラスですが、CGLIB で生成されたサブクラスの場合は元のクラスです。 |
static boolean | hasAtLeastOneMethodWithName(ClassSE<?> clazz, StringSE methodName) 指定されたクラスまたはそのスーパークラスの 1 つに、指定された名前(引数の型)を持つメソッドが少なくとも 1 つありますか? 非 public メソッドが含まれます。 |
static boolean | hasConstructor(ClassSE<?> clazz, ClassSE<?>... paramTypes) 指定されたクラスに、指定された署名を持つ public コンストラクターがあるかどうかを判断します。 |
static boolean | hasMethod(ClassSE<?> clazz, StringSE methodName, ClassSE<?>... paramTypes) 指定されたクラスに、指定された署名を持つ public メソッドがあるかどうかを判断します。 |
static boolean | isAssignable(ClassSE<?> lhsType, ClassSE<?> rhsType) リフレクションによる設定を想定して、右側の型を左側の型に割り当てることができるかどうかを確認します。 |
static boolean | isAssignableValue(ClassSE<?> type, ObjectSE value) リフレクションによる設定を想定して、指定された型が指定された値から割り当て可能かどうかを判断します。 |
static boolean | isCacheSafe(ClassSE<?> clazz, ClassLoaderSE classLoader) 指定されたクラスが指定されたコンテキストでキャッシュセーフかどうかを確認します。 |
static boolean | isCglibProxy(ObjectSE object) 指定されたオブジェクトが CGLIB プロキシかどうかを確認します。 |
static boolean | isCglibProxyClass(ClassSE<?> clazz) 指定されたクラスが CGLIB 生成クラスであるかどうかを確認します。 |
static boolean | isCglibProxyClassName(StringSE className) 指定されたクラス名が CGLIB 生成クラスかどうかを確認します。 |
static boolean | isPresent(StringSE className, ClassLoaderSE classLoader) 指定された名前で識別される ClassSE が存在し、ロードできるかどうかを判別します。 |
static boolean | isPrimitiveArray(ClassSE<?> clazz) 指定されたクラスがプリミティブの配列を表すかどうかを確認します。 |
static boolean | isPrimitiveOrWrapper(ClassSE<?> clazz) 指定されたクラスがプリミティブを表すかどうかを確認します(つまり |
static boolean | isPrimitiveWrapper(ClassSE<?> clazz) 指定されたクラスがプリミティブラッパーを表すかどうかを確認します。 |
static boolean | isPrimitiveWrapperArray(ClassSE<?> clazz) 指定されたクラスがプリミティブラッパーの配列を表すかどうかを確認します。 |
static boolean | isUserLevelMethod(MethodSE method) 指定されたメソッドがユーザーによって宣言されているか、少なくともユーザーが宣言したメソッドを指しているかを判断します。 |
static boolean | isVisible(ClassSE<?> clazz, ClassLoaderSE classLoader) 指定されたクラスが指定された ClassLoader に表示されるかどうかを確認します。 |
static boolean | matchesTypeName(ClassSE<?> clazz, StringSE typeName) 指定されたクラスがユーザー指定の型名と一致するかどうかを確認します。 |
static ClassLoaderSE | overrideThreadContextClassLoader(ClassLoaderSE classLoaderToUse) 必要に応じて、スレッドコンテキスト ClassLoader を環境の Bean ClassLoader でオーバーライドします。 |
static ClassSE<?> | resolveClassName(StringSE className, ClassLoaderSE classLoader) 指定されたクラス名を Class インスタンスに解決します。 |
static ClassSE<?> | resolvePrimitiveClassName(StringSE name) 必要に応じて、プリミティブクラスに関する JVM の命名規則に従って、指定されたクラス名をプリミティブクラスとして解決します。 |
static ClassSE<?> | resolvePrimitiveIfNecessary(ClassSE<?> clazz) 指定されたクラスがプリミティブクラスの場合は解決し、対応するプリミティブラッパー型を代わりに返します。 |
static ClassSE<?>[] | toClassArray(CollectionSE<ClassSE<?>> collection) 指定されたコレクションをクラス配列にコピーします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static final StringSE CGLIB_CLASS_SEPARATOR
@Nullable public static ClassLoaderSE getDefaultClassLoader()
null 以外の ClassLoader 参照を明確に好むシナリオでスレッドコンテキスト ClassLoader を使用する場合は、このメソッドを呼び出します。たとえば、クラスパスリソースのロード(必ずしも null ClassLoader 参照を受け入れる Class.forName の場合は必要ありません)。
null )Thread.getContextClassLoader()SE, ClassLoader.getSystemClassLoader()SE@Nullable public static ClassLoaderSE overrideThreadContextClassLoader(@Nullable ClassLoaderSE classLoaderToUse)
classLoaderToUse - スレッドコンテキストに使用する実際の ClassLoadernull public static ClassSE<?> forName(StringSE name, @Nullable ClassLoaderSE classLoader) throws ClassNotFoundExceptionSE, LinkageErrorSE
Class.forName() の代替。さらに、Java ソーススタイルで内部クラス名を解決することもできます(たとえば、"java.lang.Thread$State" の代わりに "java.lang.Thread.State" )。name - クラスの名前 classLoader - 使用するクラスローダー (デフォルトのクラスローダーを示す null の場合があります)ClassNotFoundExceptionSE - クラスが見つからなかった場合 LinkageErrorSE - クラスファイルをロードできなかった場合 Class.forName(String, boolean, ClassLoader)SEpublic static ClassSE<?> resolveClassName(StringSE className, @Nullable ClassLoaderSE classLoader) throws IllegalArgumentExceptionSE
これは、同じ引数を持つ forName メソッドと事実上同等ですが、唯一の違いは、クラスのロードに失敗した場合にスローされる例外です。
className - クラスの名前 classLoader - 使用するクラスローダー (デフォルトのクラスローダーを示す null の場合があります)IllegalArgumentExceptionSE - クラス名が解決できなかった場合 (つまり、クラスが見つからなかったか、クラスファイルをロードできませんでした)forName(String, ClassLoader)@Nullable public static ClassSE<?> resolvePrimitiveClassName(@Nullable StringSE name)
プリミティブ配列の JVM の内部クラス名もサポートします。プリミティブ配列の "[]" サフィックス表記はサポートされていません。これは forName(String, ClassLoader) でのみサポートされています。
name - 潜在的にプリミティブなクラスの名前 null public static boolean isPresent(StringSE className, @Nullable ClassLoaderSE classLoader)
ClassSE が存在し、ロードできるかどうかを判別します。クラスまたはその依存関係のいずれかが存在しないか、ロードできない場合、false を返します。className - チェックするクラスの名前 classLoader - 使用するクラスローダー (デフォルトのクラスローダーを示す null の場合があります)public static ClassSE<?> getUserClass(ObjectSE instance)
instance - チェックするインスタンス public static ClassSE<?> getUserClass(ClassSE<?> clazz)
clazz - チェックするクラス public static boolean isCacheSafe(ClassSE<?> clazz, @Nullable ClassLoaderSE classLoader)
clazz - 分析するクラス classLoader - メタデータを潜在的にキャッシュする ClassLoaderpublic static StringSE getShortName(StringSE className)
className - className の短縮名を取得するには IllegalArgumentExceptionSE - className が空の場合 public static StringSE getShortName(ClassSE<?> clazz)
clazz - 短い名前を取得するクラス public static StringSE getShortNameAsProperty(ClassSE<?> clazz)
clazz - クラス Introspector.decapitalize(String)SEpublic static StringSE getClassFileName(ClassSE<?> clazz)
clazz - クラス public static StringSE getPackageName(ClassSE<?> clazz)
java.lang.String クラスの "java.lang"。clazz - クラス public static StringSE getPackageName(StringSE fqClassName)
java.lang.String クラス名の "java.lang"。fqClassName - 完全修飾クラス名 public static StringSE getQualifiedName(ClassSE<?> clazz)
clazz - クラス public static StringSE getQualifiedMethodName(MethodSE method)
method - メソッド public static StringSE getQualifiedMethodName(MethodSE method, @Nullable ClassSE<?> clazz)
method - メソッド clazz - メソッドが呼び出されている場所 (メソッドの宣言クラスを示す null の場合があります)@Nullable public static StringSE getDescriptiveType(@Nullable ObjectSE value)
value - イントロスペクトする価値 public static boolean matchesTypeName(ClassSE<?> clazz, @Nullable StringSE typeName)
clazz - チェックするクラス typeName - 一致する型名 public static boolean hasConstructor(ClassSE<?> clazz, ClassSE<?>... paramTypes)
基本的に NoSuchMethodException を "false" に変換します。
clazz - 分析するクラブ paramTypes - メソッドのパラメーター型 Class.getMethod(java.lang.String, java.lang.Class<?>...)SE@Nullable public static <T> ConstructorSE<T> getConstructorIfAvailable(ClassSE<T> clazz, ClassSE<?>... paramTypes)
null を返します)。 本質的に NoSuchMethodException を null に変換します。
clazz - 分析するクラブ paramTypes - メソッドのパラメーター型 null Class.getConstructor(java.lang.Class<?>...)SEpublic static boolean hasMethod(ClassSE<?> clazz, StringSE methodName, ClassSE<?>... paramTypes)
基本的に NoSuchMethodException を "false" に変換します。
clazz - 分析するクラブ methodName - メソッドの名前 paramTypes - メソッドのパラメーター型 Class.getMethod(java.lang.String, java.lang.Class<?>...)SEpublic static MethodSE getMethod(ClassSE<?> clazz, StringSE methodName, @Nullable ClassSE<?>... paramTypes)
IllegalStateException をスローします)。署名が指定されている場合は、一意の候補、つまり指定された名前の単一の public メソッドがある場合にのみメソッドを返します。
本質的に NoSuchMethodException を IllegalStateException に変換します。
clazz - 分析するクラブ methodName - メソッドの名前 paramTypes - メソッドのパラメーター型 (署名を示す null の場合があります)null)IllegalStateExceptionSE - メソッドが見つからなかった場合 Class.getMethod(java.lang.String, java.lang.Class<?>...)SE@Nullable public static MethodSE getMethodIfAvailable(ClassSE<?> clazz, StringSE methodName, @Nullable ClassSE<?>... paramTypes)
null を返します)。署名が指定されている場合は、一意の候補、つまり指定された名前の単一の public メソッドがある場合にのみメソッドを返します。
本質的に NoSuchMethodException を null に変換します。
clazz - 分析するクラブ methodName - メソッドの名前 paramTypes - メソッドのパラメーター型 (署名を示す null の場合があります)null Class.getMethod(java.lang.String, java.lang.Class<?>...)SEpublic static int getMethodCountForName(ClassSE<?> clazz, StringSE methodName)
clazz - チェックするクラズ methodName - メソッドの名前 public static boolean hasAtLeastOneMethodWithName(ClassSE<?> clazz, StringSE methodName)
clazz - チェックするクラズ methodName - メソッドの名前 public static MethodSE getMostSpecificMethod(MethodSE method, @Nullable ClassSE<?> 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 が実装していないか null である場合は元のメソッド public static boolean isUserLevelMethod(MethodSE method)
Method.isSynthetic()SE(実装メソッドの場合)と GroovyObject インターフェース(インターフェースメソッドの場合。実装クラスでは、GroovyObject メソッドの実装は合成とマークされます)をチェックします。合成であるにもかかわらず、ブリッジメソッド(Method.isBridge()SE)は最終的にユーザー宣言のジェネリクスメソッドを指すため、ユーザーレベルのメソッドと見なされることに注意してください。
method - チェックする方法 true (メソッドがユーザー宣言と見なされる場合)。[@code false} それ以外の場合 @Nullable public static MethodSE getStaticMethod(ClassSE<?> clazz, StringSE methodName, ClassSE<?>... args)
clazz - メソッドを定義するクラス methodName - 静的メソッド名 args - メソッドへのパラメーターの型 null IllegalArgumentExceptionSE - メソッド名が空白または clazz が null の場合 public static boolean isPrimitiveWrapper(ClassSE<?> clazz)
clazz - チェックするクラス public static boolean isPrimitiveOrWrapper(ClassSE<?> clazz)
clazz - チェックするクラス public static boolean isPrimitiveArray(ClassSE<?> clazz)
clazz - チェックするクラス public static boolean isPrimitiveWrapperArray(ClassSE<?> clazz)
clazz - チェックするクラス public static ClassSE<?> resolvePrimitiveIfNecessary(ClassSE<?> clazz)
clazz - チェックするクラス public static boolean isAssignable(ClassSE<?> lhsType, ClassSE<?> rhsType)
lhsType - ターゲット型 rhsType - ターゲットの型に割り当てられる値の型 TypeUtils.isAssignable(java.lang.reflect.Type, java.lang.reflect.Type)public static boolean isAssignableValue(ClassSE<?> type, @Nullable ObjectSE value)
type - ターゲット型 value - 型に割り当てられる値 public static StringSE convertResourcePathToClassName(StringSE resourcePath)
resourcePath - クラスを指すリソースパス public static StringSE convertClassNameToResourcePath(StringSE className)
className - 完全修飾クラス名 public static StringSE addResourcePathToPackagePath(ClassSE<?> clazz, StringSE resourceName)
ClassLoader.getResource での使用に適したパスを返します (戻り値の前にスラッシュ ('/') を追加することにより、Class.getResource での使用にも適しています)。指定されたクラスファイルのパッケージを取得し、すべてのドット ('.') をスラッシュに変換してビルドされます ('/'), 必要に応じて末尾にスラッシュを追加し、指定されたリソース名をこれに連結します。ClassPathResource の方が便利です。clazz - パッケージがベースとして使用されるクラス resourceName - 追加するリソース名。先頭のスラッシュはオプションです。ClassLoader.getResource(java.lang.String)SE, Class.getResource(java.lang.String)SEpublic static StringSE classPackageAsResourcePath(@Nullable ClassSE<?> clazz)
ClassLoader.getResource() に直接供給されます。代わりに Class.getResource に送るには、戻り値の前にスラッシュを付ける必要があります。clazz - 入力クラス。null 値またはデフォルト(空)のパッケージでは、空の文字列("")が返されます。ClassLoader.getResource(java.lang.String)SE, Class.getResource(java.lang.String)SEpublic static StringSE classNamesToString(ClassSE<?>... classes)
基本的に AbstractCollection.toString() に似ていますが、すべてのクラス名の前にある「クラス "/"interface " プレフィックス」を削除します。
classes - Class オブジェクトの配列 AbstractCollection.toString()SEpublic static StringSE classNamesToString(@Nullable CollectionSE<ClassSE<?>> classes)
基本的に AbstractCollection.toString() に似ていますが、すべてのクラス名の前にある「クラス "/"interface " プレフィックス」を削除します。
classes - Class オブジェクトのコレクション (null の場合があります)AbstractCollection.toString()SE@Nullable public static ClassSE<?>[] toClassArray(@Nullable CollectionSE<ClassSE<?>> collection)
collection - コピーするコレクション null の場合は null )public static ClassSE<?>[] getAllInterfaces(ObjectSE instance)
instance - インターフェースを分析するインスタンス public static ClassSE<?>[] getAllInterfacesForClass(ClassSE<?> clazz)
クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス public static ClassSE<?>[] getAllInterfacesForClass(ClassSE<?> clazz, @Nullable ClassLoaderSE classLoader)
クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス classLoader - インターフェースを表示する必要がある ClassLoader (宣言されたすべてのインターフェースを受け入れる場合、null になる可能性があります)public static SetSE<ClassSE<?>> getAllInterfacesAsSet(ObjectSE instance)
instance - インターフェースを分析するインスタンス public static SetSE<ClassSE<?>> getAllInterfacesForClassAsSet(ClassSE<?> clazz)
クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス public static SetSE<ClassSE<?>> getAllInterfacesForClassAsSet(ClassSE<?> clazz, @Nullable ClassLoaderSE classLoader)
クラス自体がインターフェースの場合、唯一のインターフェースとして返されます。
clazz - インターフェースを分析するクラス classLoader - インターフェースを表示する必要がある ClassLoader (宣言されたすべてのインターフェースを受け入れる場合、null になる可能性があります)public static ClassSE<?> createCompositeInterface(ClassSE<?>[] interfaces, @Nullable ClassLoaderSE classLoader)
この実装は、指定されたインターフェースの JDK プロキシクラスを構築します。
interfaces - マージするインターフェース classLoader - ClassLoader で複合クラスを作成します Proxy.getProxyClass(java.lang.ClassLoader, java.lang.Class<?>...)SE@Nullable public static ClassSE<?> determineCommonAncestor(@Nullable ClassSE<?> clazz1, @Nullable ClassSE<?> clazz2)
clazz1 - イントロスペクトするクラス clazz2 - イントロスペクトする他のクラス null が見つからない場合。指定されたクラスのいずれかが null の場合、他のクラスが返されます。public static boolean isVisible(ClassSE<?> clazz, @Nullable ClassLoaderSE classLoader)
clazz - チェックするクラス (通常はインターフェース)classLoader - チェックする ClassLoader (null の場合があります。この場合、このメソッドは常に true を返します。)public static boolean isCglibProxy(ObjectSE object)
object - チェックするオブジェクト isCglibProxyClass(Class), AopUtils.isCglibProxy(Object)public static boolean isCglibProxyClass(@Nullable ClassSE<?> clazz)
clazz - チェックするクラス isCglibProxyClassName(String)