Как создать экземпляр любого класса в Java без ключевого слова new?

Как создать экземпляр любого класса в Java без ключевого слова new?

Все мы знаем как создавать объекты любого класса в Java: просто используем ключевое слово new. В этой статье я собрал другие известные способы создать новый экземпляр класса. Just for fun!

Способы создания экземпляра класса без ключевого слова new

Ниже мы рассмотрим 5 способов (наверняка их еще больше):

  • Class.forName()
  • ClassLoader loadClass()
  • clone()
  • Десериализация
  • Reflection API

С использованием методов forName() + newInstance() класса Class

Как видите, с помощью forName() мы загрузили класс в память, затем получили экземпляр этого класса с помощью newInstance() и с помощью приведения типов получили нужный объект.

С использованием метода loadClass()

Этот способ очень похож на предыдущий и по сути делает тоже самое, но с помощью ClassLoader:

С использованием метода clone() класса Object

Получаем новый экземпляр с помощью клонирования существующего объекта:

С использованием сериализации и десериализации

Передаем существующий InputStream в качестве параметра конструктору класса ObjectInputStream и вызываем readObject() для получения экземпляра класса.

С использованием Reflection API

Пожалуй, это самый популярный способ создания экземпляра класса после использования ключевого слова new. Рефлексия используется в большинстве современных Java фреймворков:

Подробнее об этом способе читайте в официальной документации.

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

Подписывайтесь на новые статьи по Java и Android!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *