getFields
public Field[] getFields()
throws
SecurityException返回一个包含某些 Field 对象的数组,这些对象反映此 Class
对象所表示的类或接口的所有可访问公共字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果类或接口没有可访问的公共字段,或者表示一个数组类、一个基本类型或
void,则此方法返回长度为 0 的数组。
特别地,如果该 Class 对象表示一个类,则此方法返回该类及其所有超类的公共字段。如果该 Class
对象表示一个接口,则此方法返回该接口及其所有超接口的公共字段。
该方法不反映数组类的隐式长度字段。用户代码应使用 Array 类的方法来操作数组。
getDeclaredFields
public Field[]
getDeclaredFields()
throws SecurityException返回
Field 对象的一个数组,这些对象反映此 Class
对象所表示的类或接口所声明的所有字段。包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何字段,或者此
Class 对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。
具体实现代码实例:
GetFieldsDemo01
package org.lxh.demo.classdemo04;
import
java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class GetFieldsDemo01 {
public static void main(String[] args) throws Exception {
Class<?> c = Class.forName("org.lxh.demo.classdemo04.Person");
{
/*Field f[] = c.getFields(); // 取得全部的变量 共有的属性,可以访问的属性
for (int i
= 0; i < f.length; i++) {
String mod =
Modifier.toString(f
.getModifiers());
System.out.print(mod + "
");
System.out.print("属性名字是:"+f.getName()+" ");
System.out.println(f.getType().getName());
}*/
}
{
Field f[] = c.getDeclaredFields(); // 取得全部的变量 不包括接口的属性
for (int i = 0;
i < f.length; i++) {
String mod =
Modifier.toString(f.getModifiers());
System.out.print(mod + "
");
System.out.print("属性名字是:"+f.getName()+" ");
System.out.println(f.getType().getName());
}
}
}
}
Person
package org.lxh.demo.classdemo04;
interface Info {
public static final String AUTHOR = "MLDN";
public String jiekou=null;
public int shuzhi=0;
public String
getInfo();
public String say(String name, String content);
public void sayHello();
}
public class Person implements Info {
private String name;
private
int age;
public int phone;
public String sex;
public Person() {//无参构造方法
}
public Person(String name) {
this.setName(name);
}
public Person(String name, int age) {
this(name);
this.setAge(age);
}
public String getInfo() {
return "Hello World!!!";
}
public String say(String name, String content) {
return name + "说了:" +
content;
}
public void sayHello() {
System.out.println("hello --> " +
AUTHOR);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "姓名:" + this.name + ";年龄:" +
this.age;
}
}