Рубрики

Конструктор newInstance () метод в Java с примерами

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

Если число формальных параметров конструктора равно 0, предоставленный параметр имеет длину 0 или ноль. Если конструктор завершается нормально, возвращает вновь созданный и инициализированный экземпляр.

Синтаксис:

public T newInstance(Object... initargs)
  throws InstantiationException, IllegalAccessException,
         IllegalArgumentException, InvocationTargetException

Параметры: Этот метод принимает initargs в качестве параметра, который является массивом объектов, которые должны быть переданы в качестве аргументов для вызова конструктора. Значения примитивных типов помещаются в объект-оболочку соответствующего типа (например, float в Float).

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

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

  • IllegalAccessException : если этот объект Constructor обеспечивает контроль доступа к языку Java и основной конструктор недоступен.
  • IllegalArgumentException : если количество фактических и формальных параметров отличается; если развертывание преобразования для примитивных аргументов завершается неудачей; или если после возможного развертывания значение параметра не может быть преобразовано в соответствующий тип формального параметра путем преобразования вызова метода; если этот конструктор относится к типу enum.
  • InstantiationException : если класс, который объявляет базовый конструктор, представляет абстрактный класс.
  • InvocationTargetException : если базовый конструктор выдает исключение.
  • ExceptionInInitializerError : если инициализация, вызванная этим методом, завершается неудачей.

Ниже программы иллюстрируют метод newInstance ():
Программа 1:

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

  

import java.lang.reflect.Constructor;

import java.lang.reflect.InvocationTargetException;

  

public class GFG {

  

    public static void main(String... args)

        throws InstantiationException,

               IllegalAccessException,

               IllegalArgumentException,

               InvocationTargetException

    {

  

        // Массив конструктора

        Constructor[] constructor

            = Test.class.getConstructors();

  

        // Применяем метод newInstance

        Test sampleObject

            = (Test)constructor[0].newInstance();

  

        System.out.println(sampleObject.value);

    }

}

  

class Test {

  

    String value;

  

    public Test()

    {

        System.out.println("New Instance is created");

        value = "New Instance";

    }

}

Выход:

New Instance is created
New Instance

Программа 2:

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

  

import java.lang.reflect.Constructor;

import java.lang.reflect.InvocationTargetException;

  

public class GFG {

  

    public static void main(String... args)

        throws InstantiationException,

               IllegalAccessException,

               IllegalArgumentException,

               InvocationTargetException

    {

  

        // массив конструктора

        Constructor[] constructor

            = Test.class.getConstructors();

  

        // применить метод newInstance

        Test sampleObject

            = (Test)constructor[0]

                  .newInstance("New Field");

  

        System.out.println(sampleObject.getField());

    }

}

  

class Test {

  

    private String field;

  

    public Test(String field)

    {

        this.field = field;

    }

  

    public String getField()

    {

        return field;

    }

  

    public void setField(String field)

    {

        this.field = field;

    }

}

Выход:

New Field

Ссылки: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#newInstance(java.lang.Object…)

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

Конструктор newInstance () метод в Java с примерами

0.00 (0%) 0 votes