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;
        }
    }
     
     
  • 相关阅读:
    《C#高级编程》读书笔记(十五):任务、线程和同步之二 任务
    sklearn训练模型的保存与加载
    机器学习中样本不平衡的处理方法
    剑指Offer(四):重建二叉树
    剑指Offer(三):从尾到头打印链表
    机器学习笔记(一)----基本概念
    100 个网络基础知识普及,看完成半个网络高手
    协方差基本概念及公式
    正态分布基本概念及公式
    np.random.multivariate_normal方法浅析
  • 原文地址:https://www.cnblogs.com/goldlong/p/10966026.html
Copyright © 2011-2022 走看看