zoukankan      html  css  js  c++  java
  • java反射的测试

    1.导入junit和hamcrest的jar包

    2.创建两个类user和people

    package cn.study;
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    import org.junit.Test;
    
    
    /**
     * 测试反射,主要两个类: java.lang.reflect.Field,java.lang.reflect.Method;
     * 
     * @author Administrator
     * @date 2017-08-22
     *
     */
    public class User extends People {
        private long id;
        private String name;
    
        public void setId(long id) {
            this.id = id;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public long getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        /**
         * 测试User.class.getDeclaredFields()
         * 
         * 获取到类自身的所有字段,包含public,protected,private方法
         */
        @Test
        public void testDeclaredFields() {
            Field[] dFields = User.class.getDeclaredFields();
            for (Field field : dFields) {
                System.out.println(field);
            }
        }
    
        /**
         * 测试User.class.getFields()
         * 
         * 获取到类的所有共有字段,包括自身所有的public字段,和从基类继承的,从接口实现的所有public字段
         */
        @Test
        public void testFields() {
            Field[] fields = User.class.getFields();
            for (Field field : fields) {
                System.out.println(field);
            }
        }
    
        /**
         * 测试User.class.getDeclaredMethods()
         * 
         * 获取到类的所有方法,包括自身所有的public方法,和从基类继承的,从接口实现的所有public方法
         */
        @Test
        public void testDeclaredMethods() {
            Method[] dMethods = User.class.getDeclaredMethods();
            for (Method method : dMethods) {
                System.out.println(method);
            }
        }
    
        /**
         * 测试User.class.getMethods()
         * 
         * 获取到类的所有方法,包括自身所有的public方法,和从基类继承的,从接口实现的所有public方法
         */
        @Test
        public void testMethods() {
            Method[] methods = User.class.getMethods();
            for (Method method : methods) {
                System.out.println(method);
            }
        }
    
        /**
         * 测试User.class.getDeclaredFields()
         * 
         * 获取到类自身的所有字段,包含public,protected,private方法
         */
        @Test
        public void testDeclaredConstructors() {
            Constructor<?>[] dConstructors = User.class.getDeclaredConstructors();
            for (Constructor constructor : dConstructors) {
                System.out.println(constructor);
            }
        }
    
    }
    package cn.study;
    
    public abstract class People {
    
        public int age;
    
        protected String[] favorite;
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String[] getFavorite() {
            return favorite;
        }
    
        public void setFavorite(String[] favorite) {
            this.favorite = favorite;
        }
    
    
    }

    3.执行测试

    Ride the wave as long as it will take you.
  • 相关阅读:
    KMP的next数组性质运用
    谁说前端不需要懂-Nginx反向代理与负载均衡
    Vue源码
    js学习网站
    CSS文本溢出显示省略号
    Js中带有小数的值相加产生的问题
    使用ueditor的时候,style样式传递到后台时被过滤没了
    实现div里的内容垂直居中
    安装sass报错
    js方法
  • 原文地址:https://www.cnblogs.com/jianpanaq/p/7410343.html
Copyright © 2011-2022 走看看