为了账号安全,请及时绑定邮箱和手机立即绑定

如何在实现 Parcelable 的类中使用瞬态变量?

如何在实现 Parcelable 的类中使用瞬态变量?

MYYA 2022-05-25 17:09:34
我需要了解实现 Parcelable 接口的类中的瞬态变量是否应该从modelClass(Parcel parcel)方法中的 parcel 中读取或写入writeToParcel(Parcel parcel,int i)中的 parcel 。任何人都可以为我提供一个包含瞬态变量的类实现。谢谢你。
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

“transient”-keyword 对 parcelable 对象没有影响。读取和写入可包裹对象中的字段没有自动化,因此没有现成的代码可以考虑到这一点。瞬态场特殊处理的任何可能选择完全取决于设计类的人。

规范 ( https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.1.3 ) 说“变量可能被标记为瞬态以表明它们不是对象的持久状态”,所以如果你真的想照书看书,你不应该写它们。但是,正如我所说,由于读写是在类内部机械地完成的,因此该 transient 关键字没有多大意义。


查看完整回答
反对 回复 2022-05-25
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

class Employee implements Serializable {

    private String firstName;

    private String lastName;

    private transient String confidentialInfo;


    //Setters and Getters

}


查看完整回答
反对 回复 2022-05-25
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

您可以在声明变量时简单地在数据类型之前添加瞬态关键字。


class Parcel implements Parcelable{

   private Integer checkinId;

   private transient String someCode;


   //// some methods

}


interface Parcelable implements{

  // some methods

}


查看完整回答
反对 回复 2022-05-25
  • 3 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信