Java Reflection– 获取类的所有实例变量名称

Java Reflection– 获取类的所有实例变量名称,第1张

概述我正在编写一个Android应用程序,需要将JSON对象绑定到域实体,并将来自JSON的键作为实例变量.由于有几个域实体,每个都有不同的实例变量,JSON需要在应用程序中绑定它们,我想写一个方法,如下面的:>遍历域中的所有实例变量>如果JSON中存在具有实例变量名称的密钥,请从JSON中获取此密

我正在编写一个Android应用程序,需要将JsON对象绑定到域实体,并将来自JsON的键作为实例变量.由于有几个域实体,每个都有不同的实例变量,JsON需要在应用程序中绑定它们,我想写一个方法,如下面的:

>遍历域中的所有实例变量
>如果JsON中存在具有实例变量名称的密钥,请从JsON中获取此密钥的值,并使用此密钥名称设置Domain的实例变量等于此值.

我对从类到JsON的绑定感兴趣的原因是因为如果JsON由于某种原因而发生更改,我不希望它在应用程序的域中不存在实例变量时中断应用程序特定的JsON密钥.

在此先感谢您的帮助!

解决方法:

很可能你想使用一个为你做这件事的Json库. Jackson是一个很好的,也是由Spring MVC使用的.

要回答您的问题,可以在类上使用getDeclaredFIElds(),并使用java.lang.reflect.ModifIEr.isstatic()检查该字段是否为静态.

private static class Foo {    private static long car;    private int bar;    private String baz;}public static voID main(String[] args) {    for (FIEld fIEld : Foo.class.getDeclaredFIElds()) {        if (!ModifIEr.isstatic(fIEld.getModifIErs())) {            System.out.println("Found non-static fIEld: " + fIEld.getname());                        }    }}

这将打印出来:

Found non-static fIEld: barFound non-static fIEld: baz
总结

以上是内存溢出为你收集整理的Java Reflection – 获取类的所有实例变量名称全部内容,希望文章能够帮你解决Java Reflection – 获取类的所有实例变量名称所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存