当前位置 : 主页 > 网络编程 > 其它编程 >

Java反射之Filed(类中的属性对象)

来源:互联网 收集:自由互联 发布时间:2023-07-02
通过反射机制获取类中的属性对象。1.获取类中所有的public属性(包括父类)getFields()publicclassTestFiled{cl 通过反射机制获取类中的属性对象。 1.获取类中所有的public属性(包括父类)getFields()
通过反射机制获取类中的属性对象。1.获取类中所有的public属性(包括父类)getFields()publicclassTestFiled{cl

通过反射机制获取类中的属性对象。 1.获取类中所有的public属性(包括父类)getFields()

public class TestFiled {class A{public int age;private String name;public A(){}public A(int age, String name) {super();this.age age;this.name name;}Overridepublic String toString() {return "A [age" age ", name" name "]";}}public static void main(String[] args) {TestFiled testFilednew TestFiled ();//实例化内部类分方式如下A a testFiled.new A();Class c1 a.getClass();//获取类中所有的public字段Field[] flc1.getFields();for(Field f :fl){System.out.println(f.getName()); //age}}}

2.获取类中所有的属性getDeclaredFields();

//获取类中所有字段Field[] f2 c1.getDeclaredFields();for(Field f:f2){System.out.println(f.getName());//age name this$0}

这类中定义的是两个属性为什么在获取的过程中会多出一个this$0的属性呢 this$0就是内部类所自动保留的一个指向所在外部类的引用。

3.获取类的私有字段并修改值

Field f3 c1.getDeclaredField("name");f3.setAccessible(true);f3.set(a, "你好");System.out.println(f3.get(a).toString());//你好

上一篇:ubuntu安装mongodb失败
下一篇:没有了
网友评论