前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >访问权限导致toString返回空BUG分享

访问权限导致toString返回空BUG分享

作者头像
FunTester
发布2020-10-19 09:58:31
发布2020-10-19 09:58:31
44100
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

这个BUG偶然间发现的,因为之前一直都是用Groovy去写脚本(Groovy默认访问权限是public)。在某一个使用Java写脚本的时候突然发现,我将创建好的对象toString之后竟然是空的,无论是打印对象属性还是非空验证都是通过的。但是通过fastjsontoString方法之后就变成了空。

「空气瞬间安静下来,场面一顿非常尴尬。」

  • 演示代码
代码语言:javascript
代码运行次数:0
运行
复制
 public static void main(String[] args) {
        Demo demo = new Demo("FunTester", "FunTester");

        output(JSON.toJSONString(demo));

        testOver();
    }

    static class Demo {

        String name;

        String value;

        public Demo(String name, String value) {
            this.name = name;
            this.value = value;
        }

    }
  • 控制台输出
代码语言:javascript
代码运行次数:0
运行
复制
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.7
INFO-> {}

Process finished with exit code 0

经过一番文档和资料查询,基本判断是属性访问权限导致的,通过尝试增加public修饰符,问题得到完美解决。

我最终还是选择了Groovy作为工具类的语言,代码直接就可以跑通了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档