• Java反射的两种使用方法


    1.创建User.java

    package com.tao.test;
    
    public class User {
    
        private String name;
        private int id;
        public User() {
            
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        
    
    }

    2.main方法

    package com.tao.test;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    
    public class test {
    
        public static void main(String[] args) throws Exception, SecurityException {
            //第一种 Constructor<?>方法
            Constructor<?> a = User.class.getDeclaredConstructor();
            a.setAccessible(true);
            User b = (User)a.newInstance();
            b.setId(1);//id字段
            b.setName("test");//name字段
            System.out.println(b.getId()+" "+b.getName());
            
            //第二种 Class<?>方法
            Class<?> c = Class.forName("com.tao.test.User");
            Field idF = c.getDeclaredField("id");//id字段
            idF.setAccessible(true);
            Object o = c.newInstance();
            idF.set(o, 2);
            
            Field nameF = c.getDeclaredField("name");//name字段
            nameF.setAccessible(true);
            Object name = c.newInstance();
            nameF.set(name, "jack");
            System.out.println(idF.get(o)+" "+nameF.get(name));
            
            //普通new
            User user = new User();
            user.setId(3);
            user.setName("tery");
            System.out.println(user.getId()+" "+user.getName()+" "+user.getClass());
        }
    
    }

    3.控制台输出:

    1 test
    2 jack
    3 tery class com.tao.test.User
  • 相关阅读:
    Computer Vision: Algorithms and ApplicationsのImage processing
    LOJ6079「2017 山东一轮集训 Day7」养猫
    网络七层协议及其作用
    观察者模式深度剖析
    NIO 中的读和写
    NIO的通道和缓冲区
    NIO简介
    使用OutputStream向屏幕上输出内容
    对象的序列化
    PushBackInputStream回退流
  • 原文地址:https://www.cnblogs.com/i-tao/p/9103589.html
Copyright © 2020-2023  润新知