zoukankan      html  css  js  c++  java
  • 1.反射机制

    1.什么是反射?
    就是正在运行,动态获取这个类的所有信息、
     
    2.反射机制的作用
    1.反编译: .class->.java
    2.通过反射机制访问java对象的属性,方法,构造器方法等。
     
     
    运用
     
    package com.jlong.classfrorm;
     
    import com.jlong.entity.User;
     
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
     
    public class ClassFrorm {
        public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException {
            Class<?> forName = Class.forName("com.jlong.entity.User");
          /*  Object o = aClass.newInstance();
            User user = (User) o;
            System.out.println(user.toString());*/
            //有参构造器初始化变量
          /*  Constructor<?> constructor = aClass.getConstructor(String.class);
            Object jlong = constructor.newInstance("jlong");
            User user = (User) jlong;
            String name = user.getUserName();
            System.out.println(name);*/
            // 使用反射实例化对象 无参数构造函数
            Object newInstance = forName.newInstance();
            // 获取当前类的 userId字段
            Field declaredField = forName.getDeclaredField("userName");
            // 允许操作私有成员
            declaredField.setAccessible(true);
            // 设置值
            declaredField.set(newInstance, "123");
            User user = (User) newInstance;
            System.out.println(user.getUserName());
     
     
        }
    }
     
     
    package com.jlong.entity;
     
    public class User {
        private String userName;
        private String userId;
        public User(){
     
        }
        public User(String userName){
            this.userName=userName;
        }
     
        public String getUserName() {
            return userName;
        }
     
        public void setUserName(String userName) {
            this.userName = userName;
        }
     
        public String getUserId() {
            return userId;
        }
     
        public void setUserId(String userId) {
            this.userId = userId;
        }
    }
     
     
  • 相关阅读:
    12个Web开发者应该掌握的Firebug技巧
    sql语句修改表结构
    从数据库中查询数据
    收发短信API
    日志12.03
    监听短信数据库变化
    漫谈C语言及如何学习C语言(转)
    阅读短信
    在src文件中寻找短信数据库表
    拦截短信示例1
  • 原文地址:https://www.cnblogs.com/goldlong/p/10966026.html
Copyright © 2011-2022 走看看