首页 > 其他分享 >关于Android中接口Reponse反序列化的思考

关于Android中接口Reponse反序列化的思考

时间:2022-08-21 14:11:44浏览次数:138  
标签:默认值 kotlin null Reponse ks Android 序列化 gson

总结

kotlin data class 返回值最佳实践,使用ks!
字段全写默认值,不可空,取消全部问号!
ks速度更快 并且支持N多数据类型 protobuf + json

kt默认值只有两种方式可以获取

  1. 使用kapt, 就是使用注解
  2. 使用kt专属的反射包

ks 基于kapt注解
ks无论后端返回不返回或者返回null他都不会null,最多数据显示默认值
ks 避免的是批量空处理
如果需要用 null 来判断 view的显示,可以直接确定是null
对象默认值是空构造,比如listof()

Gson

gson不支持kotlin默认值,如果在gson的结构体中设置了默认值,是不可能被反序列化出来的,纯属脱裤子放屁
gson早就不用了,gson已被淘汰,垃圾东西,不能读kotlin data class的默认值
https://extremej.itscoder.com/gson_kotlin_data_class/

Moshi

moshi可以读默认值
moshi强校验, 只要字段不匹配立刻崩溃(很危险)

Jackson

jackson也能用 但是我看jackson不支持protobuf,支持比较少

App Crash 常见情况与解决

App Crash情况:

  1. 接口字段错误崩溃 1. 使用ks解决
  2. view销毁空指针 2. 使用databinding解决
    一个标准的 ks+databinding几乎没有这些崩溃问题

标签:默认值,kotlin,null,Reponse,ks,Android,序列化,gson
From: https://www.cnblogs.com/lukelmouse/p/16609922.html

相关文章

  • 代码审计-PHP反序列化漏洞
    什么是序列化序列化可以实现将对象压缩并格式化,方便数据的传输和存储。为什么要序列化?PHP文件在执行结束时会把对象销毁,如果下次要引用这个对象的话就很麻烦,所以就有......
  • Compose和AndroidView的交互
    1、在ComposeUI中加载AndroidView控件Compose中可以加载AndroidView还是比较简单的,直接引入AndroidView来加载AndroidView布局文件。@ComposablefunGreetin......
  • Android消息机制解析
    Android消息机制解析为什么主线程中可以直接使用Handler?Handler的运行需要底层的MessageQueue和Looper支撑,MessageQueue是以单链表为数据结构的消息列表,Looper以......
  • Android四大组件——Service——和Activity的通信
    任务描述:在MyService里提供一个下载功能,然后再Activity中可以决定何时开始下载,以及随时查看下载进度。按照之前的思路:在MyService中创建一个方法,用以对下载进行管理。然后......
  • Android自定义Dialog
    开发时我们可能需要一些非全屏view的一些提示信息,或者不想去创建需要在清单文件注册的Activity来显示view,那么我们就需要借助一些其他的窗体子类来完成需求如:Dialog,PopuW......
  • 直播商城源码,Android RecycleView 加载网络图片
    直播商城源码,AndroidRecycleView加载网络图片1.布局 <android.support.v7.widget.RecyclerView  android:id="@+id/recyclerView"  android:layout_width="m......
  • go json文件的序列化和反序列化
    gojson文件的序列化和反序列化packagemainimport( "encoding/json" "fmt")typev40struct{ V41int V42string}typejsonFilestruct{ V1string......
  • 解决 Android真机调试 卸载后无法再次安装成功
    1、配置环境变量androidsdk中的tools目录和platform-tools目录都配置到系统环境变量path中; 2、运行cmd输入命令adbdevices查看当前连接设备的机器编号;......
  • Android生成密钥散列
    接入facebook登录和分享时需要在facebook后台添加密钥散列,下面是生成方式第一种(简单,准确)记住要用相应的签名文件进行签名哦try{PackageInfoinf......
  • Android接入firebase
    android的出海应用借用firebase来进行数据统计分析和应用的崩溃报告,下面是firebase的接入步骤:google提供了两种接入方式,我们讲第二种通过androidstudio的菜单AndroidSt......