Java Class forName forName(String name, Class caller)

Here you can find the source of forName(String name, Class caller)

Description

for Name

License

Apache License

Declaration

public static Class<?> forName(String name, Class<?> caller)
            throws ClassNotFoundException 

Method Source Code

//package com.java2s;
/*/*  w  w  w . j a va 2  s. c o m*/
 * Copyright 2001-2010 The Apache Software Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

public class Main {
    public static Class<?> forName(String name, Class<?> caller)
            throws ClassNotFoundException {
        ClassLoader threadClassLoader = Thread.currentThread()
                .getContextClassLoader();
        if (threadClassLoader != null) {
            try {
                return Class.forName(name, true, threadClassLoader);
            } catch (ClassNotFoundException cnfe) {
                if (cnfe.getException() != null) {
                    throw cnfe;
                }
            }
        }

        ClassLoader callerClassLoader = caller.getClassLoader();
        if (callerClassLoader != null) {
            try {
                return Class.forName(name, true, callerClassLoader);
            } catch (final ClassNotFoundException cnfe) {
                if (cnfe.getException() != null) {
                    throw cnfe;
                }
            }
        }

        return Class
                .forName(name, true, ClassLoader.getSystemClassLoader());
    }
}

Related

  1. forName(String name)
  2. forName(String name)
  3. forName(String name)
  4. forName(String name)
  5. forName(String name)
  6. forName(String origClassName)
  7. forName(String type, Class cast)
  8. forName(String[] classNames)
  9. forNameElseNull(final String fullName)