zoukankan      html  css  js  c++  java
  • 动态代理与反射

    反射

      java的class文件加载方式有两种:第一种是编译器已知的,在.class文件进行编译时,将.class文件打开进行检查。第二种是获得了一个引用,然后把这个未知类型引用的对象的.class文件动态的加载到JVM中。  

      jdk中提供了一个reflect的库,包括了Method、Construction、field、Proxy等类。反射最大的特点是在编译时不需要知道对象的类型,而在运行时可以动态的获取。

     

    public class DemoReflect {
            public static void main(String[] args) throws Exception {
                //返回People的构造方法
                Constructor c = People.class.getConstructor(String.class,int.class);
                //返回People的所有public构造方法
                Constructor cp[] = People.class.getConstructors();
                //返回People的所有构造方法
                Constructor cp1[] = People.class.getDeclaredConstructors();
                //通过获得的构造方法c调用newInstance来进行实例化
                People people = (People) c.newInstance("张三",123);
                people.say();
                //通过getMethod方法来获得
                Method m = People.class.getMethod("say");
                m.invoke(People.class.newInstance());
                
           Field fields[] = People.class.getDeclaredFields(); } }
    public class People { public String name; public int age; public People() { super(); } public People(String name, int age) { super(); this.name = name; this.age = age; } private People(int age) { super(); this.age = age; } public void say(){ System.out.println(name+" "+age); } }
  • 相关阅读:
    ajax写用户注册
    PHP——explode的应用(获取字符串,拆为下拉列表)
    PHP 语句和时间函数
    PHP 文件上传
    PHP 文件操作代码
    PHP 弹窗 源代码 css Jquery.js
    PHP Jquery 代码操作 内容 属性 样式 事件 Json数据
    PDO 代码
    练习 《新闻管理》 添加 修改 删除
    UTF-8
  • 原文地址:https://www.cnblogs.com/menbo/p/10590836.html
Copyright © 2011-2022 走看看