当前位置: 首页 > news >正文

沈阳市和平区建设局网站中国建设工程造价管理网站

沈阳市和平区建设局网站,中国建设工程造价管理网站,wordpress用户注册添加密码,wordpress按月归档一、介绍 注解序列化篇#xff1a;Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化#xff0c;我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题#xff0c;注解虽好#xff0c;但是存在一些问题。 一般在大型商业…一、介绍 注解序列化篇Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题注解虽好但是存在一些问题。 一般在大型商业项目开发过程中我们不仅追求极致的开发技术更重视软件质量。过于风骚的技术同样有潜在的风险这个时候我们还是回到本质。 二、手写Parcelable序列化 这边直接上代码 class Car(var logo:String?) :Parcelable{var name:String?var numbe:Int0constructor(parcel: Parcel) : this(parcel.readString()) {name parcel.readString()numbe parcel.readInt()}override fun writeToParcel(parcel: Parcel, flags: Int) {parcel.writeString(logo)parcel.writeString(name)parcel.writeInt(numbe)}override fun describeContents(): Int {return 0}companion object CREATOR : Parcelable.CreatorCar {override fun createFromParcel(parcel: Parcel): Car {return Car(parcel)}override fun newArray(size: Int): ArrayCar? {return arrayOfNulls(size)}}} 只要继承ParcelableIDE可以自动完成接下来就是测试。 关于CREATOR 写法有两种 1、第一种 companion object CREATOR : Parcelable.CreatorCar {override fun createFromParcel(parcel: Parcel): Car {return Car(parcel)}override fun newArray(size: Int): ArrayCar? {return arrayOfNulls(size)}} 2、第二种 companion object {JvmFieldval CREATOR object : Parcelable.CreatorCar {override fun createFromParcel(parcel: Parcel): Car {return Car(parcel)}override fun newArray(size: Int): ArrayCar? {return arrayOfNulls(size)}}} 如果你的类中需要有其他方法加入伴生对象中当前采用第一种无法扩展因为一个类中只能有一个伴生对象所以建议第二种写法。 三、复杂类序列化 简单类很好处理即使使用注解也能完成但是复杂对象的封装注解存在问题。这就是我们为什么用原生继承写法。 Demo class TestCar() :Parcelable{var car:Car?nullvar list mutableListOfCar()constructor(parcel: Parcel) : this() {car parcel.readParcelable(Car::class.java.classLoader)parcel.readTypedList(list,Car.CREATOR)}RequiresApi(Build.VERSION_CODES.Q)override fun writeToParcel(parcel: Parcel, flags: Int) {parcel.writeParcelable(car, flags)parcel.writeTypedList(list)}override fun describeContents(): Int {return 0}companion object CREATOR : Parcelable.CreatorTestCar {override fun createFromParcel(parcel: Parcel): TestCar {return TestCar(parcel)}override fun newArray(size: Int): ArrayTestCar? {return arrayOfNulls(size)}}} 这样我们就完成了复杂的对象封装。 注意 不要将注解类和非注解对象混合在一起使用。这样如果涉及到对象A是对象B的变量那么序列化对象B还是会出现异常。 复杂对象测试 简单对象 四、 总结 通过原生手写和注解两种对比我还是建议大家不要通过注解去完成因为出现问题无法排查浪费时间。特别是新手很容易被绕进去找不到问题。 不要使用注解不要使用注解不要使用注解。重要事情说三遍
http://www.yingshimen.cn/news/129908/

相关文章:

  • 网站外包如何报价企业信息平台系统
  • 石家庄网站制作长沙大连网站设计哪里有做
  • 关于行业网站建设意见上海专业做网站较好的公司
  • 上海网站建设网页制作你却虚拟主机空间发布网站
  • 嘉兴网站制作推广为什么没人做团购网站
  • 做盗版网站 国外服务器wordpress建站创业
  • 网站类产品怎么做竞品分析李佳琦网络营销方式
  • 做软件跟网站哪个难住房和城乡建设部网站八大员
  • 网站建设公司海报2022最火的新零售模式
  • 中国人做外贸网站都卖什么手续建设银行无锡分行网站
  • 企业微网站建站长沙诚信做网站
  • 有哪些公司网站建设比较好wordpress gpl协议
  • 昆明二建建设集团网站wordpress编辑器代码高亮
  • 推荐优秀的企业网站设计国内卡一卡二卡三网站视频
  • 珠宝网站设计文案如何制作一个公司网站
  • 微信互动平台网站建设淘客推广佣金
  • 专门做外国的网站吗测词汇量的专业网站
  • 色系网站哪里有做网站有必要
  • 做网站 用什么建站软件好上海市场监督管理局
  • 公司做的网站账务处理做模版网站需要租服务器吗
  • 做瞹视频网站东莞 网站建设多少钱
  • 平面设计图片大全seo可以从哪些方面优化
  • 做家装的网站有什么区别网页游戏排行榜前十名歌
  • 网站扫二维码怎么做的泉州seo按天收费
  • 网站建设对企业带来什么作用怎么用flash做游戏下载网站
  • 营销型网站制作的方法wordpress安装502
  • 深圳朝阳电子网站建设qq空间怎么跟网站做链接吗
  • 如何做属于自己的领券网站查询网站备案服务商
  • 51制作视频mv网站网站开发到上线的过程
  • wordpress 4.9升级烟台网站排名优化