V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Features
V2EX  ›  Android

初学 Android,请教下这种情况下,为什么 smsBean 是空的?

  •  
  •   Features · 2022-01-04 14:38:00 +08:00 · 8504 次点击
    这是一个创建于 1054 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在一个模块中使用以下代码

    
            ArrayList<SmsBean> smsList = new ArrayList<>();
            SmsBean smsBean = new SmsBean();
            smsBean.setSender("***********");
            smsBean.setTitle("test title");
            smsList.add(smsBean);
    
            SmsBean smsBean2 = new SmsBean();
            smsBean2.setSender("******");
            smsBean2.setTitle("test title2");
            smsList.add(smsBean2);
    
            Log.d(TAG,"smsList:"+ JSON.toJSONString(smsList));
            Log.d(TAG,"smsBean:"+ JSON.toJSONString(smsBean));
    

    输出结果为:

     smsList:[{},{}]
     smsBean:{}
    
    

    但是我在主项目的 activity 中测试时,又能打印出正确的结果,可能的原因是什么?

    第 1 条附言  ·  2022-01-04 18:13:57 +08:00
    目前看起来是 JSON.toJSONstring 把我的 bean 对象处理成空对象了
    第 2 条附言  ·  2022-01-04 22:01:24 +08:00
    1.把所有成员变量设为 public
    2.实现 toString 方法
    实现这两部就可以了。。。
    完全不知道为什么。。。
    10 条回复    2022-01-05 13:23:40 +08:00
    AoEiuV020CN
        1
    AoEiuV020CN  
       2022-01-04 15:21:22 +08:00
    看不出毛病,可以的话搞个问题 demo 项目到 github 发出来,
    或者先贴一下 SmsBean 的代码,
    hello2090
        2
    hello2090  
       2022-01-04 15:24:37 +08:00 via iPhone
    不懂 android 但你可以 debug 吗?放个断点到 smallish.add 看看呢
    hello2090
        3
    hello2090  
       2022-01-04 15:25:54 +08:00 via iPhone
    或者 tojsonstring() 要求实现的函数 smsbean 实现了吗
    whyrookie
        4
    whyrookie  
       2022-01-04 16:06:21 +08:00
    可以进到 JSON.toJSONString 函数里面看看
    NexTooo
        5
    NexTooo  
       2022-01-04 16:34:21 +08:00
    看上去没问题,你看下最后的 Json.toJSONString 方法实现?
    可能区别在这儿
    Features
        6
    Features  
    OP
       2022-01-04 17:28:07 +08:00
    @AoEiuV020CN
    @hello2090
    @whyrookie
    @NexTooo
    用的是 fastjson ,自己做了个 demo 可以输出正确结果,就是在插件环境里出现这种问题
    ykrank
        7
    ykrank  
       2022-01-04 20:04:14 +08:00
    不要用 fastjson
    hongch
        8
    hongch  
       2022-01-05 09:34:43 +08:00
    7L 正解
    AoEiuV020CN
        9
    AoEiuV020CN  
       2022-01-05 10:01:04 +08:00
    @Features #6 有没有混淆,混淆导致 field 和 getter/setter 名字对不上也会出这种问题,
    Features
        10
    Features  
    OP
       2022-01-05 13:23:40 +08:00
    @AoEiuV020CN 刚刚学习开发 uniapp 的插件,还不太了解原因
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2601 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.