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

设计工作室网站源码求几个微信推广平台

设计工作室网站源码,求几个微信推广平台,有必要代理网页的网址,wordpress手机加搜索一、介绍 注解序列化篇:Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化,我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题,注解虽好,但是存在一些问题。 一般在大型商业…

一、介绍

注解序列化篇:Android kotlin序列化之@Parcelize详解与使用_蜗牛、Z的博客-CSDN博客

通过上一篇注解序列化,我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题,注解虽好,但是存在一些问题。

一般在大型商业项目开发过程中,我们不仅追求极致的开发技术,更重视软件质量。过于风骚的技术同样有潜在的风险,这个时候我们还是回到本质。

二、手写Parcelable序列化

这边直接上代码:

class Car(var logo:String?="") :Parcelable{var name:String?=""var numbe:Int=0constructor(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.Creator<Car> {override fun createFromParcel(parcel: Parcel): Car {return Car(parcel)}override fun newArray(size: Int): Array<Car?> {return arrayOfNulls(size)}}}

只要继承Parcelable,IDE可以自动完成,接下来就是测试。

关于CREATOR 写法有两种

1、第一种

companion object CREATOR : Parcelable.Creator<Car> {override fun createFromParcel(parcel: Parcel): Car {return Car(parcel)}override fun newArray(size: Int): Array<Car?> {return arrayOfNulls(size)}}

2、第二种

    companion object {@JvmFieldval CREATOR = object : Parcelable.Creator<Car> {override fun createFromParcel(parcel: Parcel): Car {return Car(parcel)}override fun newArray(size: Int): Array<Car?> {return arrayOfNulls(size)}}}

如果你的类中需要有其他方法加入伴生对象中,当前采用第一种无法扩展,因为一个类中只能有一个伴生对象,所以建议第二种写法。

三、复杂类序列化

简单类很好处理,即使使用注解也能完成,但是复杂对象的封装,注解存在问题。这就是我们为什么用原生继承写法。

Demo:

class TestCar() :Parcelable{var car:Car?=nullvar list= mutableListOf<Car>()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.Creator<TestCar> {override fun createFromParcel(parcel: Parcel): TestCar {return TestCar(parcel)}override fun newArray(size: Int): Array<TestCar?> {return arrayOfNulls(size)}}}

这样我们就完成了复杂的对象封装。

注意:

不要将注解类和非注解对象混合在一起使用。这样如果涉及到对象A是对象B的变量,那么序列化对象B还是会出现异常。

复杂对象测试

 

简单对象

 

四、 总结

        通过原生手写和注解两种对比,我还是建议大家不要通过注解去完成,因为出现问题无法排查,浪费时间。特别是新手,很容易被绕进去,找不到问题。

不要使用注解,不要使用注解,不要使用注解。重要事情说三遍

http://www.yidumall.com/news/6238.html

相关文章:

  • 用redis加速wordpress福建seo快速排名优化
  • 网站怎么做流程如何建网站
  • 网站改版建设主要数据分析师
  • 请别人做网站会不会被盗新网站如何快速收录
  • 销售平台建设方案北京官网seo收费
  • 贵州省住房和城乡建设厅查询网站seo工作流程
  • 做视频网站容易收录吗图片外链生成工具
  • 网站开发设计各部门职责网站快速优化排名
  • aspx高性能网站建设查域名备案
  • app定制开发网站建设商务软文写作300
  • 做图剪片文案网站app接单营销网站策划方案
  • 中国建筑招聘官网2022seo日常优化内容是什么
  • 网站标志的原则今日最新新闻摘抄
  • 珠海网站建设排名灰色关键词怎么做排名
  • 苏州市住房和城乡建设局网站首页网络推广方案的基本思路
  • 短视频代运营吉林网络seo
  • 网页设计网站导航怎么弄红色字体的品牌型网站制作价格
  • 网站建设挣钱百度怎么搜索关键词
  • 中山古镇做网站google搜索引擎入口 镜像
  • 哪些网站做的好看的图片seo关键词排名优化方案
  • 做网站需要公司有哪些下列哪些店铺适合交换友情链接
  • o2o模式的特点江苏seo网络
  • 网站禁止复制代码今日最新国际新闻头条
  • 欧美风网站免费推广网站大全
  • 织梦网站地图怎么做美国今天刚刚发生的新闻
  • 商城网站具体需求最全的百度网盘搜索引擎
  • 网站整体策划与设计网络推广视频
  • 购物网站开发的难点seo自动优化软件安卓
  • 如可建设淘宝链接网站温州seo按天扣费
  • 做网站语言java推广app的平台