public class ClassHelper
extends java.lang.Object
| Constructor and Description |
|---|
ClassHelper() |
| Modifier and Type | Method and Description |
|---|---|
static java.net.URL |
absoluteLocation(@Nullable java.net.URL url,
java.lang.String className)
Uses the URL of a class resources and its name to try and extract the original class path.
|
static @Nullable java.lang.String |
absoluteLocationStr(@Nullable java.net.URL url,
java.lang.String className) |
static void |
addSource(java.util.Set<java.lang.String> sources,
java.lang.Class<?> clazz) |
static boolean |
addSourceTo(java.lang.Class<?> c,
java.lang.ClassLoader to) |
static java.lang.String |
className(@Nullable java.lang.Class<?> clazz)
Returns the full name of the class or an empty string if the class is null.
|
static java.lang.String |
className(@Nullable java.lang.Class<?> clazz,
boolean simple)
Returns either the full or simple name of the class or an empty string if the class is null.
|
static java.lang.String |
className(@Nullable java.lang.Object obj)
Returns the full name of the class of the object or an empty string if the object is null.
|
static java.lang.String |
className(@Nullable java.lang.Object obj,
boolean simple)
Returns either the full or simple name of the class of the object or an empty string if the object is null.
|
static @Nullable java.lang.Class<?> |
defineAndResolveClass(java.lang.ClassLoader loader,
java.lang.String name,
byte[] byteCode) |
static java.lang.Class<?> |
defineClass(java.lang.ClassLoader loader,
java.lang.String className,
byte[] bytes)
Defines and resolves a class from byteCode
|
static @Nullable java.lang.Class<?> |
defineClass(java.lang.ClassLoader loader,
java.lang.String name,
java.net.URL url)
Find the byteCode of a class at the given URL defines it on the given ClassLoader.
|
static java.lang.String |
descriptor(java.lang.Class<?> clazz) |
static java.lang.String |
descriptor(java.lang.String classpath) |
static java.lang.Class<?> |
existsOn(java.lang.String name,
java.lang.ClassLoader loader)
Returns a class of the given name on the given ClassLoader.
|
static <T> @Nullable java.lang.Class<T> |
findExtensibleClass(java.lang.String name,
java.lang.Class<?> superClass) |
static byte[] |
getClassBytes(@Nullable java.lang.Class<?> clazz) |
static java.net.URL |
getJarResource(java.lang.String path,
java.lang.String relativePath) |
static java.lang.String |
getResourcePath(java.lang.String className) |
static @Nullable java.net.URL |
getSourceURL(@Nullable java.lang.Class<?> clazz) |
static @Nullable java.net.URL |
getSourceURL(@Nullable java.lang.String className,
java.lang.ClassLoader loader) |
static @Nullable java.lang.String |
getSourceURLStr(@Nullable java.lang.String className,
java.lang.ClassLoader loader) |
static java.lang.String |
internalName(java.lang.Class<?> clazz) |
static java.lang.String |
internalName(java.lang.String classpath) |
static void |
loadClass(java.lang.Class<?> clazz) |
static void |
loadClass(java.lang.ClassLoader classLoader,
@Nullable java.lang.Class<?> clazz) |
static void |
loadClass(java.lang.ClassLoader classLoader,
java.lang.String classpath,
byte[] bytes) |
static void |
loadClass(java.lang.String classpath,
byte[] bytes) |
static void |
loadURL(java.lang.ClassLoader loader,
java.lang.Class<?> clazz) |
static boolean |
loadURL(java.net.URLClassLoader classLoader,
java.net.URL url) |
static <T> T |
newGenericProxy(java.lang.Class<T> type,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.Class<T> type,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> methodMatcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> argsHandler) |
static <T> T |
newGenericProxy(java.lang.Class<T> type,
java.lang.String methodName,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.Class<T> type,
java.lang.String namedMethod,
java.lang.String intermediaryMethod,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> methodMatcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> argsHandler) |
static <T> T |
newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.lang.String methodName,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.lang.String namedMethod,
java.lang.String intermediaryMethod,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.String typeName,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.String typeName,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> methodMatcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> argsHandler) |
static <T> T |
newGenericProxy(java.lang.String typeName,
java.lang.String methodName,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newGenericProxy(java.lang.String typeName,
java.lang.String namedMethod,
java.lang.String intermediaryMethod,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static <T> T |
newProxy(java.lang.Class<T> type,
java.lang.reflect.InvocationHandler handler) |
static <T> T |
newProxy(java.lang.ClassLoader loader,
java.lang.Class<T> type,
java.lang.reflect.InvocationHandler handler) |
static <T> T |
newProxy(java.lang.ClassLoader loader,
java.lang.reflect.InvocationHandler handler,
java.lang.Class<?>... types) |
static <T> T |
newProxy(java.lang.ClassLoader loader,
java.lang.reflect.InvocationHandler handler,
java.lang.Object... typesOrNames) |
static <T> T |
newProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.lang.reflect.InvocationHandler handler) |
static <T> T |
newProxy(java.lang.String typeName,
java.lang.reflect.InvocationHandler handler) |
static java.lang.String |
packageName(@Nullable java.lang.Class<?> clazz) |
static java.lang.reflect.InvocationHandler |
proxyInvoker(java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler) |
static java.lang.reflect.InvocationHandler |
proxyInvoker(boolean handleDefault,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler) |
static java.lang.reflect.InvocationHandler |
proxyInvoker(boolean handleDefault,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> matcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static java.lang.reflect.InvocationHandler |
proxyInvoker(java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> matcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler) |
static java.lang.reflect.InvocationHandler |
proxyInvokerWrappedHandle(java.util.function.BiFunction<java.lang.reflect.Method,java.lang.Object[],java.lang.Object> handler) |
static java.lang.reflect.InvocationHandler |
proxyInvokerWrappedHandle(boolean handleDefault,
java.util.function.BiFunction<java.lang.reflect.Method,java.lang.Object[],java.lang.Object> handler) |
static java.lang.Class<?> |
resolveClass(java.lang.ClassLoader loader,
@Nullable java.lang.Class<?> clazz)
Defines and resolves a class from byteCode
|
static void |
setPackageSelfVersion(java.lang.Class<?> c)
Constructs a new Package$VersionInfo with all input args other than the version set to null and assigns it to
package of the input class.
|
static void |
setPackageSelfVersion(java.lang.Package pkg)
Constructs a new Package$VersionInfo with all input args other than the version set to null and assigns it to
the input package.
|
static void |
setPackageVersion(java.lang.Class<?> c,
java.lang.String version)
Constructs a new Package$VersionInfo with all input args other than the version set to null and assigns it to
package of the input class.
|
static void |
setPackageVersion(java.lang.Package pkg,
java.lang.String version)
Constructs a new Package$VersionInfo with all input args other than the version set to null and assigns it to
the input package.
|
static void |
setPackageVersionInfo(java.lang.Class<?> c,
java.lang.Object... args)
Constructs a new Package$VersionInfo with the input args and assigns it to the package of the input class
|
static void |
setPackageVersionInfo(java.lang.Package pkg,
java.lang.Object... args)
Constructs a new Package$VersionInfo with the input args and assigns it to the input package
|
static java.lang.String |
signature(java.lang.Class<?> clazz,
java.lang.Class<?>... parameters)
Builds a signature via classes
|
static java.lang.String |
signatureClasspath(java.lang.String classpath,
java.lang.String... parameterPaths)
Builds a signature via classpaths
|
static java.lang.String |
signatureDesc(java.lang.String desc,
java.lang.String... parameterDescs)
Builds a signature via class descriptors
|
static java.lang.String |
signatureInternal(java.lang.String name,
java.lang.String... parameterNames)
Builds a signature via internal names
|
static java.lang.Class<?> |
syncDirect(java.lang.ClassLoader loader,
java.lang.Class<?> clazz) |
static void |
syncSourcesAndLoadClass(java.lang.ClassLoader syncFrom,
java.lang.ClassLoader syncTo,
java.lang.String className,
java.util.function.BiFunction<java.lang.ClassLoader,java.net.URL,java.lang.Boolean> urlLoader) |
static void |
syncSourcesForClass(java.lang.ClassLoader syncFrom,
java.lang.ClassLoader syncTo,
java.lang.String className,
java.util.function.BiFunction<java.lang.ClassLoader,java.net.URL,java.lang.Boolean> urlLoader,
java.lang.String... classesToLoad) |
static void |
verifyPackageSelfVersion(java.lang.Package pkg)
Verify that the input package has an implementation version and set it to the library version if not.
|
static void |
verifyPackageVersion(java.lang.Package pkg,
java.lang.String defaultVersion)
Verify that the input package has an implementation version and set it to the input defaultVersion if not.
|
static java.lang.String |
withPkgName(@Nullable java.lang.Class<?> ref,
java.lang.String simpleName)
Returns the full name of a class via another class in the same package and its simple name or the simple name
if the reference class is null
|
static java.lang.String |
withPkgName(@Nullable java.lang.Package pkg,
java.lang.String simpleName)
Returns the full name of a class via another class in the same package and its simple name or the simple name
if the reference class is null
|
public static java.net.URL absoluteLocation(@Nullable
@Nullable java.net.URL url,
java.lang.String className)
@Nullable
public static @Nullable java.lang.String absoluteLocationStr(@Nullable
@Nullable java.net.URL url,
java.lang.String className)
public static void addSource(java.util.Set<java.lang.String> sources,
java.lang.Class<?> clazz)
public static boolean addSourceTo(java.lang.Class<?> c,
java.lang.ClassLoader to)
public static java.lang.String className(@Nullable
@Nullable java.lang.Object obj)
public static java.lang.String className(@Nullable
@Nullable java.lang.Class<?> clazz)
public static java.lang.String className(@Nullable
@Nullable java.lang.Object obj,
boolean simple)
public static java.lang.String className(@Nullable
@Nullable java.lang.Class<?> clazz,
boolean simple)
@Nullable
public static @Nullable java.lang.Class<?> defineAndResolveClass(java.lang.ClassLoader loader,
java.lang.String name,
byte[] byteCode)
@Nullable
public static @Nullable java.lang.Class<?> defineClass(java.lang.ClassLoader loader,
java.lang.String name,
java.net.URL url)
public static java.lang.Class<?> defineClass(java.lang.ClassLoader loader,
java.lang.String className,
byte[] bytes)
public static java.lang.String descriptor(java.lang.Class<?> clazz)
public static java.lang.String descriptor(java.lang.String classpath)
public static java.lang.Class<?> existsOn(java.lang.String name,
java.lang.ClassLoader loader)
@Nullable
public static <T> @Nullable java.lang.Class<T> findExtensibleClass(java.lang.String name,
java.lang.Class<?> superClass)
public static byte[] getClassBytes(@Nullable
@Nullable java.lang.Class<?> clazz)
public static java.net.URL getJarResource(java.lang.String path,
java.lang.String relativePath)
public static java.lang.String getResourcePath(java.lang.String className)
@Nullable
public static @Nullable java.net.URL getSourceURL(@Nullable
@Nullable java.lang.String className,
java.lang.ClassLoader loader)
@Nullable
public static @Nullable java.net.URL getSourceURL(@Nullable
@Nullable java.lang.Class<?> clazz)
@Nullable
public static @Nullable java.lang.String getSourceURLStr(@Nullable
@Nullable java.lang.String className,
java.lang.ClassLoader loader)
public static java.lang.String internalName(java.lang.Class<?> clazz)
public static java.lang.String internalName(java.lang.String classpath)
public static void loadClass(java.lang.String classpath,
byte[] bytes)
public static void loadClass(java.lang.ClassLoader classLoader,
java.lang.String classpath,
byte[] bytes)
public static void loadClass(java.lang.Class<?> clazz)
public static void loadClass(java.lang.ClassLoader classLoader,
@Nullable
@Nullable java.lang.Class<?> clazz)
public static void loadURL(java.lang.ClassLoader loader,
java.lang.Class<?> clazz)
public static boolean loadURL(java.net.URLClassLoader classLoader,
java.net.URL url)
public static <T> T newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.lang.String namedMethod,
java.lang.String intermediaryMethod,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.String typeName,
java.lang.String namedMethod,
java.lang.String intermediaryMethod,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.Class<T> type,
java.lang.String namedMethod,
java.lang.String intermediaryMethod,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.String typeName,
java.lang.String methodName,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.lang.String methodName,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.Class<T> type,
java.lang.String methodName,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.String typeName,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.Class<T> type,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler)
public static <T> T newGenericProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> methodMatcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> argsHandler)
public static <T> T newGenericProxy(java.lang.String typeName,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> methodMatcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> argsHandler)
public static <T> T newGenericProxy(java.lang.Class<T> type,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> methodMatcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> argsHandler)
public static <T> T newProxy(java.lang.String typeName,
java.lang.reflect.InvocationHandler handler)
public static <T> T newProxy(java.lang.Class<T> type,
java.lang.reflect.InvocationHandler handler)
public static <T> T newProxy(java.lang.ClassLoader loader,
java.lang.String typeName,
java.lang.reflect.InvocationHandler handler)
public static <T> T newProxy(java.lang.ClassLoader loader,
java.lang.Class<T> type,
java.lang.reflect.InvocationHandler handler)
public static <T> T newProxy(java.lang.ClassLoader loader,
java.lang.reflect.InvocationHandler handler,
java.lang.Object... typesOrNames)
public static <T> T newProxy(java.lang.ClassLoader loader,
java.lang.reflect.InvocationHandler handler,
java.lang.Class<?>... types)
public static java.lang.String packageName(@Nullable
@Nullable java.lang.Class<?> clazz)
public static java.lang.reflect.InvocationHandler proxyInvoker(java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> matcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static java.lang.reflect.InvocationHandler proxyInvoker(boolean handleDefault,
java.util.function.Function<java.lang.reflect.Method,java.lang.Boolean> matcher,
java.util.function.Function<java.lang.Object[],java.lang.Object> handler)
public static java.lang.reflect.InvocationHandler proxyInvoker(java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler)
public static java.lang.reflect.InvocationHandler proxyInvoker(boolean handleDefault,
java.util.function.BiFunction<java.lang.String,java.lang.Object[],java.lang.Object> handler)
public static java.lang.reflect.InvocationHandler proxyInvokerWrappedHandle(java.util.function.BiFunction<java.lang.reflect.Method,java.lang.Object[],java.lang.Object> handler)
public static java.lang.reflect.InvocationHandler proxyInvokerWrappedHandle(boolean handleDefault,
java.util.function.BiFunction<java.lang.reflect.Method,java.lang.Object[],java.lang.Object> handler)
public static java.lang.Class<?> resolveClass(java.lang.ClassLoader loader,
@Nullable
@Nullable java.lang.Class<?> clazz)
public static void setPackageSelfVersion(java.lang.Class<?> c)
public static void setPackageSelfVersion(java.lang.Package pkg)
public static void setPackageVersion(java.lang.Class<?> c,
java.lang.String version)
public static void setPackageVersion(java.lang.Package pkg,
java.lang.String version)
public static void setPackageVersionInfo(java.lang.Class<?> c,
java.lang.Object... args)
public static void setPackageVersionInfo(java.lang.Package pkg,
java.lang.Object... args)
public static java.lang.String signature(java.lang.Class<?> clazz,
java.lang.Class<?>... parameters)
public static java.lang.String signatureClasspath(java.lang.String classpath,
java.lang.String... parameterPaths)
public static java.lang.String signatureDesc(java.lang.String desc,
java.lang.String... parameterDescs)
public static java.lang.String signatureInternal(java.lang.String name,
java.lang.String... parameterNames)
public static void syncSourcesAndLoadClass(java.lang.ClassLoader syncFrom,
java.lang.ClassLoader syncTo,
java.lang.String className,
java.util.function.BiFunction<java.lang.ClassLoader,java.net.URL,java.lang.Boolean> urlLoader)
public static java.lang.Class<?> syncDirect(java.lang.ClassLoader loader,
java.lang.Class<?> clazz)
public static void syncSourcesForClass(java.lang.ClassLoader syncFrom,
java.lang.ClassLoader syncTo,
java.lang.String className,
java.util.function.BiFunction<java.lang.ClassLoader,java.net.URL,java.lang.Boolean> urlLoader,
@Nullable
java.lang.String... classesToLoad)
public static void verifyPackageSelfVersion(java.lang.Package pkg)
public static void verifyPackageVersion(java.lang.Package pkg,
java.lang.String defaultVersion)
public static java.lang.String withPkgName(@Nullable
@Nullable java.lang.Class<?> ref,
java.lang.String simpleName)
public static java.lang.String withPkgName(@Nullable
@Nullable java.lang.Package pkg,
java.lang.String simpleName)