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 withClass
es, such as acquiring them from the applicationClassLoader
s 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 Class
forName(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 Constructor
getConstructor(Class clazz, Class... argTypes)
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)
.static Object
instantiate(Constructor ctor, Object... args)
static boolean
isAvailable(String fullyQualifiedClassName)
static Object
newInstance(Class clazz)
static Object
newInstance(Class clazz, Object... args)
static Object
newInstance(String fqcn)
static Object
newInstance(String fqcn, Object... args)
-
-
-
Constructor Detail
-
ClassUtils
public ClassUtils()
-
-
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
null
if 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, anUnknownClassException
is 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)
-
newInstance
public static Object newInstance(String fqcn)
-
newInstance
public static Object newInstance(String fqcn, Object... args)
-
newInstance
public static Object newInstance(Class clazz)
-
newInstance
public static Object newInstance(Class clazz, Object... args)
-
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
-
-