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

FunTester · 2020年10月10日 · 636 次阅读

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

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

  • 演示代码
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;
       }

   }
  • 控制台输出
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作为工具类的语言,代码直接就可以跑通了。


公众号FunTester首发,原创分享爱好者,腾讯云和掘金社区首页推荐,知乎七级原创作者,欢迎关注、交流,禁止第三方擅自转载。

FunTester 热文精选

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册