Метод forName класса Class
Метод forName класса Class загружает класс по его полному имени
и возвращает объект Class, который представляет этот класс.
В первый параметр мы передаем строку с полным именем класса (включая пакет).
Второй параметр определяет, нужно ли инициализировать класс при загрузке.
Третий параметр принимает загрузчик классов, который будет использоваться
для загрузки класса. Метод может выбрасывать исключение ClassNotFoundException,
если класс с указанным именем не найден.
Синтаксис
Class.forName(className, [initialize], [loader])
Пример
Давайте загрузим класс String и выведем его полное имя:
public class Main
{
public static void main(String[] args) throws ClassNotFoundException
{
Class<?> clazz = Class.forName("java.lang.String");
System.out.println(clazz.getName());
}
}
Результат выполнения кода:
"java.lang.String"
Пример
Давайте загрузим класс ArrayList и создадим его экземпляр:
import java.util.ArrayList;
public class Main
{
public static void main(String[] args) throws Exception
{
Class<?> clazz = Class.forName("java.util.ArrayList");
Object obj = clazz.getDeclaredConstructor().newInstance();
System.out.println(obj.getClass().getSimpleName());
}
}
Результат выполнения кода:
"ArrayList"
Пример
Давайте загрузим класс без инициализации:
public class Main
{
public static void main(String[] args) throws ClassNotFoundException
{
Class<?> clazz = Class.forName("java.lang.Integer", false, Main.class.getClassLoader());
System.out.println(clazz.getSimpleName());
}
}
Результат выполнения кода:
"Integer"
Смотрите также
-
метод
getName,
который возвращает полное имя класса -
метод
getSimpleName,
который возвращает простое имя класса -
метод
isInstance,
который проверяет принадлежность объекта классу -
метод
isAssignableFrom,
который проверяет совместимость типов