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

php网站生成静态页面怎么做网站建设的ppt

php网站生成静态页面,怎么做网站建设的ppt,个人发布房源的网站,什么网站可以买世界杯一、介绍 注解序列化篇: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.yayakq.cn/news/687973/

相关文章:

  • 陕西网站备案流程建站用Wordpress还是
  • 做期货都看哪个网站太平洋建设21局网站
  • 高校网站开发阿里云虚拟主机网站
  • 如何免费创建自己的平台个人网站建设优化
  • 成都网站建制作苏州建网站的公司哪家口碑好
  • 织梦做小游戏网站珠海新盈科技有限公 网站建设
  • 工程建设信息网站资质公告用html制作个人简历
  • 空间设计网站产品推广公司
  • 安徽 网站开发seo优化推广工程师招聘
  • 网站建设中 html 下载扬州网站建设要多少钱
  • 如何进行网站检查深圳市网站建设制作设计平台
  • 恒星科技网站建设建立个人博客网站
  • 外贸建站推广有关网站开发的论文
  • 苏州专业做网站公司电话数字创意设计包括哪些案例
  • 地区网站建设东莞东城邮编
  • 市网站建设怎么修改wordpress字体
  • 关键字挖掘爱站网定制开发网站如何报价
  • 淄博网站建设培训班百度指数明星人气榜
  • 阿里云有了域名 网站建设网站建设都需要哪些材料
  • 如何自己做视频网站有哪些做伦敦金的网站
  • 杭州做网站电话溧阳网站设计
  • 做搜狗pc网站优化点企业怎么建立网站
  • 绵阳安州区做网站的有哪些对网站建设的看法
  • 庆阳网站制作宿州网站制作建设
  • 南阳网站公司大连网站建设在线
  • 网站建设和维护要点南昌p2p网站专业建设
  • 宁波建网站方式长春大学
  • 文档分享类网站建设北京社区网站建设
  • 汽车行业网站建设维护服务秦皇岛网站制作
  • 做网站的企业学做吃的网站有哪些