请问如何判断JAVA反射的invoke调用的方法返回值是null与0?

发布于 2022-09-06 02:36:52 字数 622 浏览 18 评论 0

Class<?> tagClass = tag.getClass();
        for(Field field : tagClass.getDeclaredFields()) {
            
            Method g = tagClass.getMethod("get"+field.getName().substring(0,1).toUpperCase()+field.getName().substring(1));
            
        
            if(g.invoke(tag) != null) {
                System.out.println("Hello");
            }
        }

Tag 模型的字段有String 和int 类型
初始String是null
初始int 是0
在if体,我只判断了不为null
我想要的是怎么判断g.invoke(tag)不为null 与 g.invoke(tag)不等于0,才可以打印Hello
我试过转换(int)g.invoke(tag),但是遇到null值,就控制台报错了.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不可一世的女人 2022-09-13 02:36:53
Object result = g.invoke(tag);
if (result != null) { // 不为 null
    if (result.getClass() == String.class) { // 是 String
        ...
    } else if (result.getClass() == Integer.class) { // 是 int
        ...
    }
}
旧夏天 2022-09-13 02:36:53

嗯。判断类型,然后再进行转换,与0的值进行比较即可~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文