Java – создание объекта без ключевого слова «new»

Мы все знаем, как создавать объекты любого класса. Самый простой метод создания объекта в Java — использование ключевого слова new. Давайте рассмотрим другие методы создания объектов без ключевого слова new.

1. Использование Class.newInstance()

Class ref = Class.forName("DemoClass");DemoClass obj =(DemoClass) ref.newInstance();

Class.forName() загружает DemoClass в память. Чтобы создать экземпляр этого класса, нам нужно использовать newInstance().

2. Использование ClassLoader

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

instance.getClass().getClassLoader().loadClass("NewClass").newInstance();

3. Использование Object.clone()

Метод clone() также является способом создания нового независимого экземпляра класса.

NewClass obj = new NewClass();NewClass obj2 =(NewClass) obj.clone();

4. Использование сериализации и десериализации

Если вы изучили основы сериализации, вы можете понять, что сериализация и десериализация — это также способ иметь еще один экземпляр класса во время выполнения.

ObjectInputStream objStream = new ObjectInputStream(inputStream);NewClass obj =(NewClass ) inStream.readObject();

5. Использование отражения

Рефлексия также является популярным способом создания новых экземпляров в большинстве доступных фреймворков.

private <T> T instantiate(Class<?> input, Object parameter) {try {Constructor<?> constructor = ConstructorUtils.getMatchingAccessibleConstructor(input, parameter.getClass());return(T) constructor.newInstance(parameter);} catch(Exception e) {//handle various exceptions}}

Если вы считаете, что я упускаю какой-либо другой возможный способ, пожалуйста, дайте мне знать.

Прокрутить вверх