Java反射机制(取得类的全部的属性)
4419 点击·0 回帖
![]() | ![]() | |
![]() | 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; } } | |
![]() | ![]() |