Java.lang.Class 类

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

语法

public Field[] getFields()
                  throws SecurityException

参数

无需参数。

返回值

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

Exception

如果存在安全管理器 s 并且抛出 SecurityException,调用者的类加载器与当前类的类加载器不同或不是其祖先,并且调用 s.checkPackageAccess() 拒绝访问此类的包。

示例:

下面的示例显示了 java.lang.Class.getFields() 方法的用法。

import java.lang.*;
import java.lang.reflect.*;

public class MyClass {
  public static void main(String[] args) {
    try {
      Class cls = Class.forName("java.lang.Integer");

      //打印可访问的公共字段
      Field f[] = cls.getFields();
      System.out.println("Fields are: ");
      for(Field i: f)
        System.out.println(i);

    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

上述代码的输出将是:

Fields are: 
public static final int java.lang.Integer.MIN_VALUE
public static final int java.lang.Integer.MAX_VALUE
public static final java.lang.Class java.lang.Integer.TYPE
public static final int java.lang.Integer.SIZE
public static final int java.lang.Integer.BYTES