Java反射获取属性名、属性类型、属性值

这篇具有很好参考价值的文章主要介绍了Java反射获取属性名、属性类型、属性值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

反射、泛型、JDBC 等基础结合起来很多时候可以使代码功能更加强大,适合更多的场景使用

一个通过反射获得属性名、属性类型、属性值的示例:

import lombok.Builder;
import lombok.Data;
import lombok.ToString;

import java.lang.reflect.Field;

/**
 * 反射
 */
public class ReflectTest {
    public static  <T> void reflect(T t){
        // 获取所有属性
        // getDeclaredFields 不包含父类,包含私有属性
        // getFields 包含父类属性
        Field[] fields = t.getClass().getDeclaredFields();
        for (Field field : fields) {
            String fieldName = field.getName();
            // 设置私有属性的访问权限
            field.setAccessible(true);

            // 获取属性类型
            Class<?> type = field.getType();
            String typeName = field.getType().getName();
            String typeSimpleName = field.getType().getSimpleName();

            Object fieldValue = null;
            try {
                // 获取属性类型值
                fieldValue = field.get(t);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }

            System.out.println("属性:" + fieldName + ",类型:" +typeSimpleName+"(class:"+type+",typeName:"+typeName+"),值:" +fieldValue);
        }

    }

    public static void main(String[] args) {
        User user = User.builder().id(1).username("zhangsan").sex("男").age(19).addr("北京").build();
        ReflectTest.reflect(user);
    }
}

@Data
@Builder
@ToString
class User {
    private int id;
    private String username;
    private String sex = "男";
    private Integer age;
    private String addr;
}

执行,输出:文章来源地址https://www.toymoban.com/news/detail-523770.html

属性:id,类型:int(class:int,typeName:int),值:1
属性:username,类型:String(class:class java.lang.String,typeName:java.lang.String),值:zhangsan
属性:sex,类型:String(class:class java.lang.String,typeName:java.lang.String),值:男
属性:age,类型:Integer(class:class java.lang.Integer,typeName:java.lang.Integer),值:19
属性:addr,类型:String(class:class java.lang.String,typeName:java.lang.String),值:北京

到了这里,关于Java反射获取属性名、属性类型、属性值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java反射】反射获取Class、Constructor、Field、Method的方式

    如下是相应的获取方式 总结: 首先获取对象的Class,然后通过getXXX方法获取,带Declared可以通过setAccessible获取私有XXX

    2024年02月02日
    浏览(34)
  • Java反射:探索对象创建与类信息获取

    🎉欢迎来到Java学习路线专栏~Java反射:探索对象创建与类信息获取 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java学习路线 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限

    2024年02月09日
    浏览(29)
  • Java注解源码分析,实现自定义注解通过反射获取

    JDK5.0 引入,可以通过反射机制动态获取,大量应用于java框架中 内置注解 @Override 重写父类方法时 @Deprecated 使用它存在风险,可能导致错误 可能在未来版本中不兼容 可能在未来版本中删除 一个更好和更高效的方案已经取代它 @SuppressWarnings 告诉编译器忽略指定的警告,不用在

    2024年02月03日
    浏览(30)
  • Java 基础进阶篇(十七):反射概述及获取对象的方式

    反射是指对于任何一个Class类,在 “运行的时候”,不用创建对象,就可以直接得到这个类全部成分。 在运行时,可以直接得到这个类的构造器对象:Constructor 在运行时,可以直接得到这个类的成员变量对象:Field 在运行时,可以直接得到这个类的成员方法对象:Method 这种

    2024年02月07日
    浏览(29)
  • Java通过属性名获取Object对象属性值

    通过已知的属性名称,从对象里获取数据的方式 通过将Object转为Map: 通过invoke方式: 调用方式:

    2024年02月15日
    浏览(32)
  • Golang 中的反射,并用来获取数据类型

    Go语言提供了一种机制在运行中获取某个变量的类型,获取或修改变量的值,调用变量的方法。 示例代码如下 通过 reflect.Value 判断变量类型,并转换成 string 。 输出结果: 输出结果:

    2024年01月22日
    浏览(40)
  • Go语言通过反射获取各种类型变量的值

    反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 Golang 反射包中有两对非常重要的函数和类型,两个函数分别是: reflect.TypeOf 能获取类型信息 reflect.Type; reflect.ValueOf 能获取

    2024年02月15日
    浏览(40)
  • Android开发——控件EditText, 2.获取EditText输入的数据,通过按钮点击实现,ImageView控件,缩放类型,控件ProgressBar,常用属性详解,进度条设置

    1. android : hint 输入提示 2. android : textColorHint  输入提示文字的颜色 3. android : inputType  输入类型 4. android : drawableXxxx 在输入框的指定方位添加图片 5. android : drawablePadding  设置图片与输入内容的间距 6. android : paddingxxxx  设置内容与边框的间距 7. android : backgrou

    2024年02月07日
    浏览(36)
  • 【JAVA WEB】获取/修改 元素属性&&表单元素属性&&样式属性 以及如何操作DOM树中的节点

    目录 获取/修改元素属性 获取/修改表单元素属性 切换按钮的文本 实现计数器 全选/取消全选按钮 获取/修改样式属性 行内样式操作  类名样式操作 操作节点  新增节点 1.创建元素节点 2.插入节点到dom树中 删除节点  可以通过Element对象的属性来直接修改,就能影响到页面显

    2024年02月22日
    浏览(44)
  • java Map集合里面取键和值的四种方式

    使用Map的keySet()方法获取键集合,再使用forEach循环遍历键集合,通过Map的get()方法获取对应的值。例如: 使用Map的values()方法获取值集合,再使用forEach循环遍历值集合。例如: 使用Map的entrySet()方法获取键值对集合,再使用forEach循环遍历键值对集合,通过Entry的getKey()方法获取

    2024年01月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包