Class ClassLoaderUtils


  • public class ClassLoaderUtils
    extends java.lang.Object
    Various classloader utils. Extends the standard ways of loading classes or resources with a fallback mechanism to the thread context classloader.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Class forName​(java.lang.String name)
      Loads a specified class.
      static java.lang.Class[] getClassContext()
      Returns the current execution stack as an array of classes.
      static java.lang.Class getClassContextAt​(int i)
      Returns a class at specified depth of the current execution stack.
      static java.lang.ClassLoader getClassLoaderContextAt​(int i)
      Returns a classloader at specified depth of the current execution stack.
      static java.io.InputStream getResourceAsStream​(java.lang.String name)
      Gets an InputStream to a resource of a specified name.
      static java.lang.Class<?> loadClass​(java.lang.String className, java.lang.Class<?> callingClass)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClassLoaderUtils

        public ClassLoaderUtils()
    • Method Detail

      • getClassContext

        public static java.lang.Class[] getClassContext()
        Returns the current execution stack as an array of classes.

        The length of the array is the number of methods on the execution stack. The element at index 0 is the class of the currently executing method, the element at index 1 is the class of that method's caller, and so on.

        Returns:
        the execution stack.
      • getClassContextAt

        public static java.lang.Class getClassContextAt​(int i)
        Returns a class at specified depth of the current execution stack.
        Returns:
        the class at the specified depth of the current execution stack. Migth return null if depth is out of range.
      • getClassLoaderContextAt

        public static java.lang.ClassLoader getClassLoaderContextAt​(int i)
        Returns a classloader at specified depth of the current execution stack.
        Returns:
        the classloader at the specified depth of the current execution stack. Migth return null if depth is out of range.
      • getResourceAsStream

        public static java.io.InputStream getResourceAsStream​(java.lang.String name)
        Gets an InputStream to a resource of a specified name. First, the caller's classloader is used to load the resource and if it fails the thread's context classloader is used to load the resource.
      • forName

        public static java.lang.Class forName​(java.lang.String name)
                                       throws java.lang.ClassNotFoundException
        Loads a specified class. First, the caller's classloader is used to load the class and if it fails the thread's context classloader is used to load the specified class.
        Throws:
        java.lang.ClassNotFoundException
      • loadClass

        public static java.lang.Class<?> loadClass​(java.lang.String className,
                                                   java.lang.Class<?> callingClass)
                                            throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException