-
-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]:data class 默认值碰到的问题 #51
Comments
@skywolfwen 如果不用框架进行解析,你在 data class 定义的默认值是否也能生效? |
那不行,默认的gson不支持这个功能 |
我的意思是不用解析框架,直接 new 一个 data class 对象默认值是否能生效? |
new 的对象默认值是生效的 |
@getActivity 我发现好像是因为有些属性有默认值,有些属性没有默认值才有这个问题,如果属性都有默认值那解析也是没问题的 |
没听懂你这句话是什么意思? |
就是一个data class里,并不是所有属性都设置了默认值,有些属性是需要在创建对象时必须明确传值的,这种data class在agp 8.7.0然后开启代码混淆的情况下使用框架解析默认值会失效,但如果所有属性都设置了默认值那在同等条件下使用框架解析默认值是生效的 |
我测试发现是没有问题的,data class 默认值都是生效的。 |
Android Studio 是最新的 Ladybug 这个版本,build.gradle 中是8.7.0,gradle-wrapper.properties 中是8.9。如果在这种环境下您测试还是没问题,那我过两天给您发个demo |
@getActivity |
你这种写法本身存在问题,userId 是不可变的常量,类型为 String 的写法代表值不能为空,但是你在 data class 类中字段上面没有给它赋值。 |
因为想要的效果是这个属性值完全由接口返回值来赋值。不过即便这种写法有问题,那框架在agp 8.5.0下也能赋上默认值,估计是升级插件版本后某些东西被混淆了,因为安装包都比以前小了些。当然如果您觉得这样不算是bug,那我也可以都加上默认值避免这个问题,只是不知道能否在文档里说明一下 |
框架版本【必填】
9.6
问题描述【必填】
Kotlin data class 里设置的默认值在 agp 版本升级到 8.7.0 后开启混淆打包默认值都会失效,我之前的 agp 版本是 8.5.0,没有这个问题
复现步骤【必填】
agp 升级到 8.7.0 就行
是否必现【必填】
是
项目 targetSdkVersion【必填】
34
出现问题的手机信息【必填】
Redmi K50 Ultra
出现问题的安卓版本【必填】
Android 14
问题信息的来源渠道【必填】
自己遇到的
是部分机型还是所有机型都会出现【必答】
所有机型
框架最新的版本是否存在这个问题【必答】
是
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是
是否可以通过 Demo 来复现该问题【必答】
是
提供报错堆栈
No response
提供截图或视频
No response
提供解决方案
No response
The text was updated successfully, but these errors were encountered: