Рубрики

Метод set () поля в Java с примерами

Метод set () объекта java.lang.reflect.Field используется для установки значения поля, представленного этим объектом поля в указанном аргументе объекта, на указанное новое значение, переданное в качестве параметра. Новое значение автоматически разворачивается, если базовое поле имеет примитивный тип. Если поле статическое, аргумент obj игнорируется; оно может быть нулевым. В противном случае базовое поле является полем экземпляра.

  • Этот метод выдает другое исключение в зависимости от сценариев, как этот метод выдает исключение NullPointerException, если указанный аргумент объекта равен нулю
  • или IllegalArgumentException, если указанный аргумент объекта не является экземпляром класса или интерфейса, объявляющего базовое поле.
  • Этот метод генерирует исключение IllegalAccessException, если этот объект Field обеспечивает контроль доступа к языку Java, а основное поле недоступно.
  • Этот метод генерирует исключение IllegalArgumentException, если базовое поле относится к примитивному типу, при попытке развернуть попытку преобразования новое значение преобразовывается в значение примитивного типа.
  • Если эта попытка не удалась. Этот метод создает исключение IllegalArgumentException, если после возможного развертывания новое значение не может быть преобразовано в тип базового поля с помощью преобразования идентификатора или расширения.
  • Если поле является статическим и если оно еще не было инициализировано, то класс, который объявил это поле, инициализируется. Поле установлено в возможно развернутое и расширенное новое значение. Если поле скрыто в типе obj, значение поля устанавливается в соответствии с предыдущими правилами.

Синтаксис:

public void set(Object obj, Object value)
         throws IllegalArgumentException,
                IllegalAccessException

Параметры: Этот метод принимает принимает два параметра:

  • объект : который является объектом, поле которого должно быть изменено и
  • значение : которое является новым значением для поля obj, которое изменяется.

Return : этот метод ничего не возвращает.

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

  • IllegalAccessException : если этот объект Field применяет контроль доступа к языку Java и базовое поле недоступно или окончательно.
  • IllegalArgumentException : если указанный объект не является экземпляром класса или интерфейса, объявляющего базовое поле (или его подкласс, или его разработчик), или если преобразование развертывания завершается неудачно.
  • NullPointerException : если указанный объект является нулем, и поле является полем экземпляра.
  • ExceptionInInitializerError : если инициализация, вызванная этим методом, завершается неудачей.

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

// Java-программа иллюстрирует метод set ()

  

import java.lang.reflect.Field;

  

public class GFG {

  

    public static void main(String[] args)

        throws Exception

    {

  

        // создаем объект пользователя

        Employee emp = new Employee();

  

        // выводим значение uniqueNo

        System.out.println(

            "Value of uniqueNo before "

            + "applying set is "

            + emp.uniqueNo);

  

        // Получить объект поля

        Field field

            = Employee.class

                  .getField("uniqueNo");

  

        // Применить метод Set

        field.set(emp, (short)1213);

  

        // выводим значение uniqueNo

        System.out.println(

            "Value of uniqueNo after "

            + "applying set is "

            + emp.uniqueNo);

  

        // выводим значение зарплаты

        System.out.println(

            "Value of salary before "

            + "applying set is "

            + emp.salary);

  

        // Получить объект поля

        field = Employee.class.getField("salary");

  

        // Применить метод Set

        field.set(emp, 324344.2323);

  

        // выводим значение зарплаты

        System.out.println(

            "Value of salary after "

            + "applying set is "

            + emp.salary);

    }

}

  
// образец класса

class Employee {

  

    // статические значения

    public static short uniqueNo = 239;

    public static double salary = 121324.13333;

}

Выход:

Value of uniqueNo before applying set is 239
Value of uniqueNo after applying set is 1213
Value of salary before applying set is 121324.13333
Value of salary after applying set is 324344.2323

Программа 2:

// Java-программа иллюстрирует метод set ()

  

import java.lang.reflect.Field;

  

public class GFG {

  

    public static void main(String[] args)

        throws AccessException

    {

  

        // создаем атрибуты объекта

        attributes att = new attributes();

  

        // Получить объект поля значения

        Field field1

            = attributes.class

                  .getField("bolValue");

        Field field2

            = attributes.class

                  .getField("intValue");

        Field field3

            = attributes.class

                  .getField("doubleValue");

  

        // Применить метод Set

        field1.set(att, false);

        field2.set(att, 1213);

        field3.set(att, 342414.131);

  

        // выводим значение isActive

        System.out.println(

            "Values after "

            + "applying set are { "

            + att.bolValue + ", "

            + att.intValue

            + ", " + att.doubleValue

            + " }.");

    }

}

  
// пример класса атрибутов

class attributes {

  

    // статическое значение

    public static boolean bolValue = false;

    public static int intValue = 13134;

    public static double doubleValue = 1314.141;

}

Выход:

Values after applying set are { false, 1213, 342414.131 }

Ссылки: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#set-java.lang.Object-java.lang.Object-

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

Метод set () поля в Java с примерами

0.00 (0%) 0 votes