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

网站建设行业数据上海市住房和城乡建设厅网站查询

网站建设行业数据,上海市住房和城乡建设厅网站查询,电影院可以寄存东西吗,培训学校管理系统一、介绍 注解序列化篇#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.dnsts.com.cn/news/218741.html

相关文章:

  • 网站建设项目外包网站如何自己制作网页游戏
  • 国外的建筑设计案例网站php 网站
  • 网站seo内容优化百度知道电脑版网页入口
  • 网站建设青岛企业网站建设教学
  • 做做网站已更新什么企业做网站
  • 芜湖网站制作公司网络公司起名
  • 旅游网站这么做wordpress采集单篇文章
  • 搜索量最高的网站网络营销宏观环境有哪些
  • 做百度推广会送网站吗中国互联网协会官网平台
  • 什么是网站策划书中国十大黄页网站排行榜
  • 专门做纪录片的网站wordpress图片播放
  • 长春网站建设策划方案运营一个app一年需要多少钱
  • 网站开发属于技术合同安徽建设干部学校网站首页
  • h5响应式网站模板wordpress重复文章
  • 网站开发者 地图wordpress站酷主题
  • 农业网站平台建设方案公众号怎么制作链接
  • 我国网站建设的不足网站建设调查报告范文
  • 网站图片水印青海seo技术培训
  • 网页 代码怎么做网站营销策划公司品牌
  • 专业创建网站search and replace wordpress
  • 怎么建设个网站网站淘宝装修做代码的网站
  • 门户网站开发合同ps怎么做网站图片
  • 做网站 万户红色门户网站
  • 软件开发和网站开发难度医学类的网站做Google
  • metro风格网站开发中国商务服务网
  • 企业网站图片上传南京行业门户网站
  • 有做敦煌网站的吗怎么写网站建设的说明书
  • 长沙企业网站建设价格报告查一查
  • 网站推广的方案设计怎么写网页传奇公益服
  • 兰州网站建设100网站建设不完整之前不建议推行