zoukankan      html  css  js  c++  java
  • Java--->反射机制(简单了解)

    反射:Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法; 并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方 法的功能成为 Java 语言的反射机制。

    主要应用于框架

     public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, ClassNotFoundException, NoSuchFieldException {
            //获得Class对象
            Class c1 = Class.forName("com.xian.dao.User");
            //获取一个对象
            User user = (User) c1.newInstance();
            //获取构造器
            Constructor constructor = c1.getDeclaredConstructor(String.class);
            User user1= (User) constructor.newInstance("hahaha");
            System.out.println(user1.name);
    
            User user2= (User) c1.newInstance();
            //获取方法
            Method setName= c1.getDeclaredMethod("setName", String.class);
            setName.invoke(user2,"hahah");
            System.out.println(user.getName());
    
            //获取相应属性
            User user3= (User) c1.newInstance();
            Field name=c1.getDeclaredField("name");
            //设置私有属性可见,但是会降低效率(安全检查开关)
            name.setAccessible(true);
            name.set(user3,"Filed");
            System.out.println(user1.getName());
    
    
        }

    1. Class 类:反射的核心类,可以获取类的属性,方法等信息。

    2. Field 类:Java.lang.reflec 包中的类,表示类的成员变量,可以用来获取和设置类之中的属性值setAccessible(true)可以设置私有属性可见

     3. Method 类: Java.lang.reflec 包中的类,表示类的方法,它可以用来获取类中的方法信息或 者执行方法。

    4. Constructor 类: Java.lang.reflec 包中的类,表示类的构造方法。

  • 相关阅读:
    css实现并列效果
    去除inline-block之间的间距
    鼠标点击<input>输入域后出现有颜色的边框
    消除a标签点击后产生的虚线框
    超过既定行数时,用省略号代替的方法
    常用按钮样式
    常用颜色
    通过Gulp流方式处理流程
    IntelliJ IDEA 10 配置 Tomcat7
    chrome浏览器调试线上文件映射本地文件
  • 原文地址:https://www.cnblogs.com/springxian/p/13671415.html
Copyright © 2011-2022 走看看