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.util.Map<?,?> |
burningWaveProperties() |
static void |
checkBurningWaveInit() |
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 java.lang.Class<?> |
defineClass(java.lang.ClassLoader loader,
java.lang.String name,
@Nullable java.nio.ByteBuffer buffer)
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> T |
findAndInitialize(java.lang.String className,
java.lang.Object... args) |
static @Nullable java.lang.Class<?> |
findClass(java.lang.String name)
Finds a class from the input name via the context ClassLoader.
|
static @Nullable java.lang.Class<?> |
findClass(java.lang.String name,
boolean initialize)
Finds a class from the input name via the context ClassLoader.
|
static @Nullable java.lang.Class<?> |
findClass(java.lang.String name,
boolean initialize,
java.lang.ClassLoader classLoader) |
static @Nullable java.lang.Class<?> |
findClass(java.lang.String name,
boolean initialize,
java.lang.ClassLoader classLoader,
boolean forceLoader)
Finds a class from the input name via the input ClassLoader.
|
static @Nullable java.lang.Class<?> |
findClass(java.lang.String name,
java.lang.ClassLoader classLoader)
Finds a class from the input name via the input ClassLoader.
|
static @Nullable java.lang.Class<?>[] |
findClasses(boolean initialize,
java.lang.ClassLoader classLoader,
java.lang.String... names) |
static @Nullable java.lang.Class<?>[] |
findClasses(boolean initialize,
java.lang.String... names) |
static @Nullable java.lang.Class<?>[] |
findClasses(java.lang.ClassLoader classLoader,
java.lang.String... names) |
static @Nullable java.lang.Class<?>[] |
findClasses(java.lang.String... names) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName,
boolean initialize) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName,
boolean initialize,
java.lang.ClassLoader classLoader) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName,
java.lang.ClassLoader classLoader) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Package pkg,
java.lang.String simpleName) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Package pkg,
java.lang.String simpleName,
boolean initialize) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Package pkg,
java.lang.String simpleName,
boolean initialize,
java.lang.ClassLoader classLoader) |
static @Nullable java.lang.Class<?> |
findClassFrom(@Nullable java.lang.Package pkg,
java.lang.String simpleName,
java.lang.ClassLoader classLoader) |
static byte[] |
getClassBytes(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 <T> T |
initialize(@Nullable java.lang.Class<T> clazz,
java.lang.Object... args) |
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 boolean |
loadURL(java.net.URLClassLoader classLoader,
java.net.URL url) |
static void |
moveClassTo(java.lang.Class<?> c,
java.lang.ClassLoader target) |
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 |
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 java.lang.String |
packageName(@Nullable java.lang.Class<?> clazz) |
static java.lang.Class<?> |
resolveClass(java.lang.ClassLoader classLoader,
@Nullable java.lang.Class<?> clazz)
Defines and resolves a class from byteCode
|
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 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.util.Map<?,?> burningWaveProperties()
public static void checkBurningWaveInit()
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.Class<?> defineClass(java.lang.ClassLoader loader,
java.lang.String name,
@Nullable
@Nullable java.nio.ByteBuffer buffer)
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)
public static <T> T findAndInitialize(java.lang.String className,
java.lang.Object... args)
@Nullable public static @Nullable java.lang.Class<?> findClass(java.lang.String name)
@Nullable
public static @Nullable java.lang.Class<?> findClass(java.lang.String name,
java.lang.ClassLoader classLoader)
@Nullable
public static @Nullable java.lang.Class<?> findClass(java.lang.String name,
boolean initialize)
@Nullable
public static @Nullable java.lang.Class<?> findClass(java.lang.String name,
boolean initialize,
java.lang.ClassLoader classLoader)
@Nullable
public static @Nullable java.lang.Class<?> findClass(java.lang.String name,
boolean initialize,
java.lang.ClassLoader classLoader,
boolean forceLoader)
@Nullable public static @Nullable java.lang.Class<?>[] findClasses(java.lang.String... names)
@Nullable
public static @Nullable java.lang.Class<?>[] findClasses(java.lang.ClassLoader classLoader,
java.lang.String... names)
@Nullable
public static @Nullable java.lang.Class<?>[] findClasses(boolean initialize,
java.lang.String... names)
@Nullable
public static @Nullable java.lang.Class<?>[] findClasses(boolean initialize,
java.lang.ClassLoader classLoader,
java.lang.String... names)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Package pkg,
java.lang.String simpleName)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName,
java.lang.ClassLoader classLoader)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Package pkg,
java.lang.String simpleName,
java.lang.ClassLoader classLoader)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName,
boolean initialize)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Package pkg,
java.lang.String simpleName,
boolean initialize)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Class<?> clazz,
java.lang.String simpleName,
boolean initialize,
java.lang.ClassLoader classLoader)
@Nullable
public static @Nullable java.lang.Class<?> findClassFrom(@Nullable
@Nullable java.lang.Package pkg,
java.lang.String simpleName,
boolean initialize,
java.lang.ClassLoader classLoader)
public static byte[] getClassBytes(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)
@Nullable
public static <T> T initialize(@Nullable
@Nullable java.lang.Class<T> clazz,
java.lang.Object... args)
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 boolean loadURL(java.net.URLClassLoader classLoader,
java.net.URL url)
public static void moveClassTo(java.lang.Class<?> c,
java.lang.ClassLoader target)
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.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.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.Class<T> type,
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.Class<?>... types)
public static java.lang.String packageName(@Nullable
@Nullable java.lang.Class<?> clazz)
public static java.lang.Class<?> resolveClass(java.lang.ClassLoader classLoader,
@Nullable
@Nullable java.lang.Class<?> clazz)
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 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)