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;
        }
    }
     
     
  • 相关阅读:
    安卓巴士诚招版主,希望各位巴友踊跃加入我们!
    android用户界面之菜单(Menu)教程实例汇总
    360将推出多款360用户特供手机
    安卓巴士最新精选文章,请您查阅
    android用户界面之SeekBar教程实例汇总
    Android OpenGL ES 开发教程小结
    android用户界面之按钮(Button)教程实例汇
    Seleniumwebdriver系列教程(5)————如何定位frame中的元素
    Seleniumwebdriver系列教程(10)————如何智能的等待页面加载完成
    Seleniumwebdriver系列教程(6)————如何捕获弹出窗口
  • 原文地址:https://www.cnblogs.com/goldlong/p/10966026.html
Copyright © 2011-2022 走看看