java的反射机制--关于类中属性的反射。

    技术2022-05-18  15

              之前对于反射的理解只是认为,通过一个类的名字动态创建出一个类来。

     

    其实,知道类中属性的名字也可以,动态的得到该属性。

     

     

     

    比如

     

    class A{

       S = “abc”;

    }

     

    我们可以动态加载S

     

    A

    package com.sxzlc.test.refelect; public class A { String S = "abc"; String R = "www"; }

     

    B

    package com.sxzlc.test.refelect; import java.lang.reflect.Field; public class B { String s2 = m("S"); public String m(String param) { try { Field field = A.class.getDeclaredField(param); field.setAccessible(true); System.out.println(field.getName()); //输出abc System.out.println(field.get(new A())); return ""; } catch (Exception e) { throw new RuntimeException(e); } } }

     

    TestMain

    package com.sxzlc.test.refelect; public class TestMain { /** * @param args */ public static void main(String[] args) { B b = new B(); } }

     

     

     

    扩展:(思想)

     

    更好的思想是提供get方法 ,对get方法进行反射,因为有时属性的方法可能是私有的。

     

     

    参考:http://topic.csdn.net/u/20110426/21/d7706d52-c267-4bd3-bf3a-c3e8094c25bc.html?seed=51821956&r=73020870#r_73020870


    最新回复(0)