当前位置:首页 > Java技术 > java反射获取属性和属性类型,并且获取值

java反射获取属性和属性类型,并且获取值

2022年09月17日 15:50:06Java技术6

结果:

java反射获取属性和属性类型,并且获取值 _ JavaClub全栈架构师技术笔记

代码:

public class ClassCheck {
    public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
        User user = new User();
        user.setId(1L);
        user.setAge(5000);
        user.setName("中国");
        Company company = new Company();
        company.setId(1);
        company.setAddress("亚洲");
        checkClass(user);
    }

    public static void checkClass(Object object) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        //获取所有类的属性=
        Field[] fields = object.getClass().getDeclaredFields();
        //遍历所有属性
        for (int i = 0; i < fields.length; i++) {
            //设置可以访问私有变量
            fields[i].setAccessible(true);
            //获取属性类型
            String type = fields[i].getGenericType().toString();
            //获取属性名称
            String name = fields[i].getName();
            System.out.println("当前类型为:" + type + " 当前名称为:" + name);
            //将属性的首字母变成大写
            name = name.replace(name.substring(0, 1), name.substring(0, 1).toUpperCase());
            //endsWith是否一指定后缀为结尾
            if (type.endsWith("String")) {
                //获取get方法
                Method method = object.getClass().getMethod("get" + name);
                //通过get方法获取属性值
                String value = (String) method.invoke(object);
                System.out.println("get方法获取的值为:" + value);
            }
           

        }
    }
}
public class User {
    private Long id;
    private Integer age;
    private int shengao;
    private Byte sex;
    private String name;
    private String EName;
    private Company company;

    public int getShengao() {
        return shengao;
    }

    public void setShengao(int shengao) {
        this.shengao = shengao;
    }

    public String getEName() {
        return EName;
    }

    public void setEName(String EName) {
        this.EName = EName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Byte getSex() {
        return sex;
    }

    public void setSex(Byte sex) {
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Company getCompany() {
        return company;
    }

    public void setCompany(Company company) {
        this.company = company;
    }
}
public class Company {
    private Integer id;
    private String address;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

作者:java-zh
来源链接:https://blog.csdn.net/qq_36138652/article/details/115578795

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/42767.html

分享给朋友:

“java反射获取属性和属性类型,并且获取值” 的相关文章

Java反射机制

  往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它。当你能够解决这些问题时,便意味着你已经对这项知识入门了。 一、是什么   Java Reflaction in Action有这么一句话,可以解释。反射...

Java反射机制详解

Java反射机制详解

     Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。 1、关于Class &n...

java面试题--java反射机制

Java反射机制的作用: 1)在运行时判断任意一个对象所属的类。 2)在运行时判断任意一个类所具有的成员变量和方法。 3)在运行时任意调用一个对象的方法 4)在运行时构造任意一个类的对象 拓展: 1、什么是反射机制?...

Java反射笔记

Java反射笔记

Java反射笔记 1:Class类 同Object,String等类一样,Class也是一个类 构造函数只可由JVM调用,不可由开发者调用。 任何一个类均是Class类的实例对象。 任何继承Object的对象均有 g...

Java异常处理之InvocationTargetException(反射异常)

 Java异常处理之InvocationTargetException(反射异常)   InvocationTargetException异常由Method.invoke(obj, args...)方法抛出。当被调用的方法的内部抛出了异常而没有被捕获时,...

java反射及应用

java反射及应用

1.反射概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文...

浅谈Java反射的实现原理

从一段示例代码开始 Class clz = Class.forName("ClassA"); Object instance = clz.newInstance(); Method method =...

Java反射,注解,以及动态代理

Java反射,注解,以及动态代理

Java反射,注解,以及动态代理 基础  最近在准备实习面试,被学长问到了Java反射,注解和动态代理的内容,发现有点自己有点懵,这几天查了很多资料,就来说下自己的理解吧【如有错误,望指正】...

java反射机制详解

java反射机制详解

一、什么是反射 JAVA反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法;对于任何一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 想要使用反射机制,就必须要先获取到该类的字节码文件对象(...

Java反射应用-遍历一个对象的属性和值

本文是Java反射的一个常见的案例,常见的情况是,给到一个对象,需要把对象的每个属性和值重新生成一个Map或者Array,这个时候就是要要到反射啦,不多说,上干货: public static ArrayList<NameValuePair> getObjNam...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。