概述
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[i].getModifiers());
System.out.print(mod + " ");
System.out.print("属性名字是:"+f[i].getName()+" ");
System.out.println(f[i].getType().getName());
}*/
}
{
Field f[] = c.getDeclaredFields(); // 取得全部的变量 不包括接口的属性
for (int i = 0; i < f.length; i++) {
String mod = Modifier.toString(f[i].getModifiers());
System.out.print(mod + " ");
System.out.print("属性名字是:"+f[i].getName()+" ");
System.out.println(f[i].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;
}
}
最后
以上就是踏实发带为你收集整理的Java反射机制(取得类的全部的属性)的全部内容,希望文章能够帮你解决Java反射机制(取得类的全部的属性)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复