Package org.apache.shiro.util
Class ClassUtils
- java.lang.Object
-
- org.apache.shiro.util.ClassUtils
-
public class ClassUtils extends Object
Utility method library used to conveniently interact withClasses, such as acquiring them from the applicationClassLoaders and instantiating Objects from them.- Since:
- 0.1
-
-
Constructor Summary
Constructors Constructor Description ClassUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ClassforName(String fqcn)Attempts to load the specified class name from the current thread'scontext class loader, then the current ClassLoader (ClassUtils.class.getClassLoader()), then the system/application ClassLoader (ClassLoader.getSystemClassLoader(), in that order.static List<Method>getAnnotatedMethods(Class<?> type, Class<? extends Annotation> annotation)static ConstructorgetConstructor(Class clazz, Class... argTypes)static InputStreamgetResourceAsStream(String name)Returns the specified resource by checking the current thread'scontext class loader, then the current ClassLoader (ClassUtils.class.getClassLoader()), then the system/application ClassLoader (ClassLoader.getSystemClassLoader(), in that order, usinggetResourceAsStream(name).static Objectinstantiate(Constructor ctor, Object... args)static booleanisAvailable(String fullyQualifiedClassName)static ObjectnewInstance(Class clazz)static ObjectnewInstance(Class clazz, Object... args)static ObjectnewInstance(String fqcn)static ObjectnewInstance(String fqcn, Object... args)
-
-
-
Method Detail
-
getResourceAsStream
public static InputStream getResourceAsStream(String name)
Returns the specified resource by checking the current thread'scontext class loader, then the current ClassLoader (ClassUtils.class.getClassLoader()), then the system/application ClassLoader (ClassLoader.getSystemClassLoader(), in that order, usinggetResourceAsStream(name).- Parameters:
name- the name of the resource to acquire from the classloader(s).- Returns:
- the InputStream of the resource found, or
nullif the resource cannot be found from any of the three mentioned ClassLoaders. - Since:
- 0.9
-
forName
public static Class forName(String fqcn) throws UnknownClassException
Attempts to load the specified class name from the current thread'scontext class loader, then the current ClassLoader (ClassUtils.class.getClassLoader()), then the system/application ClassLoader (ClassLoader.getSystemClassLoader(), in that order. If any of them cannot locate the specified class, anUnknownClassExceptionis thrown (our RuntimeException equivalent of the JRE'sClassNotFoundException.- Parameters:
fqcn- the fully qualified class name to load- Returns:
- the located class
- Throws:
UnknownClassException- if the class cannot be found.
-
isAvailable
public static boolean isAvailable(String fullyQualifiedClassName)
-
getConstructor
public static Constructor getConstructor(Class clazz, Class... argTypes)
-
instantiate
public static Object instantiate(Constructor ctor, Object... args)
-
getAnnotatedMethods
public static List<Method> getAnnotatedMethods(Class<?> type, Class<? extends Annotation> annotation)
- Parameters:
type-annotation-- Returns:
- Since:
- 1.3
-
-