Рубрики

Метод класса forName (String, boolean, ClassLoader) в Java с примерами

Метод forName (String, boolean, ClassLoader) класса java.lang.Class используется для получения экземпляра этого класса с указанным именем класса с использованием указанного загрузчика классов. Класс инициализируется только в том случае, если параметр initialize имеет значение true, и если он не был инициализирован ранее.

Синтаксис:

public static Class<T>
 forName(String className, 
         boolean initialize, 
         ClassLoader classLoader) 
 throws ClassNotFoundException

Параметр: Этот метод принимает следующие параметры:

  • className — это класс, для которого требуется его экземпляр.
  • initialize, который является логическим значением, чтобы указать, нужно ли инициализировать этот экземпляр класса или нет.
  • classLoader, который является ClassLoader, из которого этот класс должен быть загружен.

Возвращаемое значение: этот метод возвращает экземпляр этого класса, выбранный с использованием указанных параметров.

Исключение: этот метод генерирует следующие исключения:

  • LinkageError: если сбой связывания
  • ExceptionInInitializerError: если инициализация, вызванная этим методом, завершается неудачно
  • ClassNotFoundException: если класс не может быть найден
  • SecurityException: если менеджер безопасности присутствует, и загрузчик нулевой, и загрузчик класса вызывающей стороны не нулевой, и у вызывающей стороны нет RuntimePermission («getClassLoader»)

Ниже программы демонстрируют метод forName ().

Пример 1:

// Java-программа для демонстрации метода forName ()

  

public class Test {

    public static void main(String[] args)

        throws ClassNotFoundException

    {

  

        // возвращает объект Class для этого класса

        Class myClass = Class.forName("Test");

  

        ClassLoader loader = myClass.getClassLoader();

  

        // получить экземпляр класса, используя метод forName

        Class c1

            = Class.forName("java.lang.String",

                            true,

                            loader);

  

        System.out.print("Class represented by c1: "

                         + c1.toString());

    }

}

Выход:

Class represented by c1: class java.lang.String

Пример 2:

// Java-программа для демонстрации метода forName ()

  

public class Test {

    public static void main(String[] args)

        throws ClassNotFoundException

    {

  

        // возвращает объект Class для этого класса

        Class myClass = Class.forName("Test");

  

        ClassLoader loader = myClass.getClassLoader();

  

        // получить экземпляр класса, используя метод forName

        Class c1

            = Class.forName("java.lang.Integer",

                            false,

                            loader);

  

        System.out.print("Class represented by c1: "

                         + c1.toString());

    }

}

Выход:

Class represented by c1: class java.lang.Integer

Ссылка: https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#forName-java.lang.String-boolean-java.lang.ClassLoader-

Рекомендуемые посты:

Метод класса forName (String, boolean, ClassLoader) в Java с примерами

0.00 (0%) 0 votes