Java Class getDeclaredField() 方法



描述

Java Class getDeclaredField() 方法返回一个 Field 对象,该对象反映由此 Class 对象表示的类或接口的指定声明字段。name 参数是一个字符串,指定所需字段的简单名称。

声明

以下是java.lang.Class.getDeclaredField() 方法的声明

public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException

参数

name − 这是字段的名称。

返回值

此方法返回此类中指定字段的 Field 对象。

异常

  • NoSuchFieldException − 如果未找到具有指定名称的字段。

  • NullPointerException − 如果 name 为 null。

  • SecurityException − 如果存在安全管理器 s。

获取类的声明字段示例

以下示例显示了 java.lang.Class.getDeclaredField() 方法的用法。在这个程序中,我们创建了一个 ClassDemo 的实例,然后使用 getClass() 方法检索实例的类。使用 getDeclaredField(),我们检索了所需的 Field 并打印它。

package com.tutorialspoint;

import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
         ClassDemo c = new ClassDemo();
         Class cls = c.getClass();

         // field long l
         Field lVal  = cls.getDeclaredField("l");
         System.out.println("Field = " + lVal.toString());
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }

   public ClassDemo() {
      // no argument constructor
   }

   public ClassDemo(long l) {
      this.l = l;
   }

   long l = 77688;
}

输出

让我们编译并运行上面的程序,这将产生以下结果:

Field = long com.tutorialspoint.ClassDemo.l

获取 ArrayList 的声明字段示例

以下示例显示了 java.lang.Class.getDeclaredField() 方法的用法。在这个程序中,我们使用了 ArrayList 的类。使用 getDeclaredField(),我们检索了所需的 Field 并打印它。

package com.tutorialspoint;

import java.lang.reflect.Field;
import java.util.ArrayList;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
         Class cls = ArrayList.class;

         // field int size
         Field size  = cls.getDeclaredField("size");
         System.out.println("Field = " + size.toString());
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

输出

让我们编译并运行上面的程序,这将产生以下结果:

Field = private int java.util.ArrayList.size

获取 Thread 的声明字段示例

以下示例显示了 java.lang.Class.getDeclaredField() 方法的用法。在这个程序中,我们使用了 Thread 的类。使用 getDeclaredField(),我们检索了所需的 Field 并打印它。

package com.tutorialspoint;

import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
         Class cls = Thread.class;

         // field long tid
         Field tid  = cls.getDeclaredField("tid");
         System.out.println("Field = " + tid.toString());
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

输出

让我们编译并运行上面的程序,这将产生以下结果:

Field = private final long java.lang.Thread.tid
java_lang_class.htm
广告