Java Class getFields() 方法



描述

Java Class getFields() 方法返回一个包含 Field 对象的数组,这些对象反映了由该 Class 对象表示的类或接口的所有可访问的公共字段。如果该类或接口没有可访问的公共字段,或者它表示一个数组类、基本类型或 void,则该方法返回长度为 0 的数组。

声明

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

public Field[] getFields() throws SecurityException

参数

返回值

此方法返回表示公共字段的 Field 对象数组。

异常

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

获取类的字段示例

以下示例显示了 java.lang.Class.getFields() 方法的使用。在此程序中,我们检索了 java.awt.Label 的类,然后使用 getFields() 方法检索所有字段并打印它们。

package com.tutorialspoint;

public class ClassDemo {

   public static void main(String[] args) {

      try {
         Class cls = Class.forName("java.awt.Label");
         System.out.println("Fields =");

         // returns the array of Field objects representing the public fields
         Field f[] = cls.getFields();
         for (int i = 0; i < f.length; i++) {
            System.out.println(f[i]);
         }
      } catch (Exception e) {
         System.out.println("Exception: " + e);
      }
   }
} 

输出

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

Fields =
public static final int java.awt.Label.LEFT
public static final int java.awt.Label.CENTER
public static final int java.awt.Label.RIGHT
public static final float java.awt.Component.TOP_ALIGNMENT
public static final float java.awt.Component.CENTER_ALIGNMENT
public static final float java.awt.Component.BOTTOM_ALIGNMENT
public static final float java.awt.Component.LEFT_ALIGNMENT
public static final float java.awt.Component.RIGHT_ALIGNMENT
public static final int java.awt.image.ImageObserver.WIDTH
public static final int java.awt.image.ImageObserver.HEIGHT
public static final int java.awt.image.ImageObserver.PROPERTIES
public static final int java.awt.image.ImageObserver.SOMEBITS
public static final int java.awt.image.ImageObserver.FRAMEBITS
public static final int java.awt.image.ImageObserver.ALLBITS
public static final int java.awt.image.ImageObserver.ERROR
public static final int java.awt.image.ImageObserver.ABORT

获取 ArrayList 类字段的示例

以下示例显示了 java.lang.Class.getFields() 方法的使用。在此程序中,我们使用了 ArrayList 类。使用 getFields(),我们检索了所有字段并打印它们。由于所有字段都是私有的,因此没有打印任何字段。

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;
         System.out.println("Fields =");

         // returns the array of Field objects representing the public fields
         Field f[] = cls.getFields();
         for (int i = 0; i < f.length; i++) {
            System.out.println(f[i]);
         }
      } catch (Exception e) {
         System.out.println("Exception: " + e);
      }
   }
} 

输出

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

Fields =

获取 Thread 类字段的示例

以下示例显示了 java.lang.Class.getFields() 方法的使用。在此程序中,我们使用了 Thread 类。使用 getFields(),我们检索了所有字段并打印它们。

package com.tutorialspoint;

import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

      try {
         Class cls = Thread.class;
         System.out.println("Fields =");

         // returns the array of Field objects representing the public fields
         Field f[] = cls.getFields();
         for (int i = 0; i < f.length; i++) {
            System.out.println(f[i]);
         }
      } catch (Exception e) {
         System.out.println("Exception: " + e);
      }
   }
} 

输出

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

Fields =
public static final int java.lang.Thread.MIN_PRIORITY
public static final int java.lang.Thread.NORM_PRIORITY
public static final int java.lang.Thread.MAX_PRIORITY
java_lang_class.htm
广告