A collection of useful static utility methods for handling classes and object
instantiation.
clone
public static Object clone(Object object)
throws CloneNotSupportedException
Returns a clone of the specified object, if it can be cloned, otherwise
throws a CloneNotSupportedException.
object
- the object to clone (null
not permitted).
- A clone of the specified object.
deepClone
public static Collection deepClone(Collection collection)
throws CloneNotSupportedException
Returns a new collection containing clones of all the items in the
specified collection.
collection
- the collection (null
not permitted).
- A new collection containing clones of all the items in the
specified collection.
equal
public static boolean equal(Object o1,
Object o2)
Returns true
if the two objects are equal OR both
null
.
o1
- object 1 (null
permitted).o2
- object 2 (null
permitted).
getClassLoader
public static ClassLoader getClassLoader()
Returns the custom classloader or null, if no custom classloader is defined.
- the custom classloader or null to use the default.
getClassLoader
public static ClassLoader getClassLoader(Class c)
Returns the classloader, which was responsible for loading the given
class.
c
- the classloader, either an application class loader or the
boot loader.
- the classloader, never null.
getClassLoaderSource
public static String getClassLoaderSource()
Returns the internal configuration entry, whether the classloader of
the thread context or the context classloader should be used.
- the classloader source, either THREAD_CONTEXT or CLASS_CONTEXT.
getResource
public static URL getResource(String name,
Class c)
Returns the resource specified by the absolute name.
name
- the name of the resourcec
- the source class
- the url of the resource or null, if not found.
getResourceAsStream
public static InputStream getResourceAsStream(String name,
Class context)
Returns the inputstream for the resource specified by the
absolute name.
name
- the name of the resourcecontext
- the source class
- the url of the resource or null, if not found.
getResourceRelative
public static URL getResourceRelative(String name,
Class c)
Returns the resource specified by the relative name.
name
- the name of the resource relative to the given classc
- the source class
- the url of the resource or null, if not found.
getResourceRelativeAsStream
public static InputStream getResourceRelativeAsStream(String name,
Class context)
Returns the inputstream for the resource specified by the
relative name.
name
- the name of the resource relative to the given classcontext
- the source class
- the url of the resource or null, if not found.
hashCode
public static int hashCode(Object object)
Returns a hash code for an object, or zero if the object is
null
.
object
- the object (null
permitted).
- The object's hash code (or zero if the object is
null
).
isJDK14
public static boolean isJDK14()
loadAndInstantiate
public static Object loadAndInstantiate(String className,
Class source)
Tries to create a new instance of the given class. This is a short cut
for the common bean instantiation code.
className
- the class name as String, never null.source
- the source class, from where to get the classloader.
- the instantiated object or null, if an error occured.
loadAndInstantiate
public static Object loadAndInstantiate(String className,
Class source,
Class type)
Tries to create a new instance of the given class. This is a short cut
for the common bean instantiation code. This method is a type-safe method
and will not instantiate the class unless it is an instance of the given
type.
className
- the class name as String, never null.source
- the source class, from where to get the classloader.
- the instantiated object or null, if an error occured.
setClassLoader
public static void setClassLoader(ClassLoader classLoader)
Redefines the custom classloader.
classLoader
- the new classloader or null to use the default.
setClassLoaderSource
public static void setClassLoaderSource(String classLoaderSource)
Defines the internal configuration entry, whether the classloader of
the thread context or the context classloader should be used.
This setting can only be defined using the API, there is no safe way
to put this into an external configuration file.
classLoaderSource
- the classloader source,
either THREAD_CONTEXT or CLASS_CONTEXT.