美文网首页
Java--反射

Java--反射

作者: Qi0907 | 来源:发表于2017-05-31 17:08 被阅读0次

    反射就是程序在运行时能够获取自身的信息,在java中,只要给定类的名字, 就可以通过反射机制来获得类的所有信息。
    反射可以实现动态创建对象和编译,体现出很大的灵活性,通过反射,类中有什么信息,它就可以获得什么信息。

    1. 获取完整的包名,类名:
    public class test {
               public static void main(String[] args) throws Exception {
                  test t = new test();
                  t.getClass().getName();    
               }
    }
    
    1. 创建对象:
    Class<?> clazz =Class.forName("XXX"); 
    //创建此Class 对象所表示的类的一个新实例
    Object obj = clazz.newInstance();
    
    1. 获取所有属性:
    Class<?> clazz = Class.forName("XXX"); 
    //获取所有的属性
    Field[] fs = clazz.getDeclaredFields();
    //获取属性为XXX的属性
    Field idF = c.getDeclaredField("XXX"); 
    
    1. 获取所有方法:
    Class<?> clazz = Class.forName("XXX"); 
    Method method[] = clazz.getMethods();
    
    1. 调用某个类的方法:
    Class<?> clazz = Class.forName("XXX"); 
    Object obj = clazz.newInstance();
    // 获取XXX类中的method1方法
    Method method2 = clazz.getMethod("method1");
    //调用obj(clazz.newInstance())类中method1方法
    Method1.invoke(obj);
    //如果这个类的方法method2需要传递参数
    Method method2 = clazz.getMethod("method2", int A, String B);
    method2.invoke(obj, paramter1, paramter2…);
    
    1. 操作某个类的属性:
    Class<?> clazz = Class.forName("XXX"); 
    //对AAA属性赋值
    Field field = clazz.getDeclaredField("AAA");
    field.setXXX(BBB);
    

    相关文章

      网友评论

          本文标题:Java--反射

          本文链接:https://www.haomeiwen.com/subject/qvsjfxtx.html