java.lang.reflect.Field.setInt()方法範例

2019-10-16 22:48:51

java.lang.reflect.Field.setInt(Object obj, int value)方法將欄位的值設定為指定物件上的整型值。

宣告

以下是java.lang.reflect.Field.setInt(Object obj, int value)方法的宣告。

public void setInt(Object obj, int value) 
   throws IllegalArgumentException, IllegalAccessException

引數

  • obj - 其欄位應該被修改的物件。
  • value - 被修改的obj的欄位的新值。

返回值

  • NA

異常

  • IllegalAccessException - 如果此Field物件正在執行Java語言存取控制,並且底層欄位無法存取。
  • IllegalArgumentException - 如果指定的物件不是宣告底層欄位(或其子類或實現者)的類或介面的範例。
  • NullPointerException - 如果指定的物件為空,該欄位為範例欄位。
  • ExceptionInInitializerError - 如果由此方法引發的初始化失敗。

例子

以下範例顯示java.lang.reflect.Field.setInt(Object obj, int value)方法的用法。

import java.lang.reflect.Field;

public class FieldDemo {

   public static void main(String[] args) throws NoSuchFieldException, 
      SecurityException, IllegalArgumentException, IllegalAccessException {

      SampleClass sampleObject = new SampleClass();

      Field field = SampleClass.class.getField("sampleField");

      field.setInt(sampleObject, 7999);

      System.out.println(field.getInt(sampleObject));
   }
}

class SampleClass {
   public static int sampleField = 5999;
}

讓我們編譯並執行上面的程式,這將產生以下結果 -

5999