问题描述
我定义了一个内联方法,它提供了一种反序列化片段参数的方法。
我需要检查请求的 Arg
类型以选择反序列化方法。
inline fun <reified Arg : Any?> Fragment.navArgParser(
crossinline parcelCreatorProducer: () -> Parcelable.Creator<Arg>
) = NavArgsLazy<Arg?>({
arguments ?: throw IllegalStateException("Fragment $this has null arguments")
}) {
when {
Arg is Parcelable -> // ISSUE
NavArgParser.deserializeData<Arg>(it,parcelCreatorProducer.invoke())
Arg is Serializable -> // ISSUE
NavArgParser.deserializeData<Serializable>(it) as Arg
else ->
throw IllegalStateException("${Arg::class.java.simpleName} must implement Parcelable or Serializable")
}
}
如何检查 Arg 是 Parcelable 还是 Serializable?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)