Pit*_*tel 12 android android-safe-args
我需要将 KotlinPair
作为参数传递。
<argument android:name="data" app:argType="kotlin.Pair" />
Run Code Online (Sandbox Code Playgroud)
e: CreateCodeFragmentDirections.kt: (16, 15): 2 type arguments expected for class Pair<out A, out B>
Run Code Online (Sandbox Code Playgroud)
<argument android:name="data" app:argType="kotlin.Pair<String, String>" />
Run Code Online (Sandbox Code Playgroud)
Cause: markup not allowed inside attribute value - illegal < (position: TEXT seen ...<argument android:name="data" app:argType="kotlin.Pair<... @132:30)
Run Code Online (Sandbox Code Playgroud)
<argument android:name="data" app:argType="kotlin.Pair<String, String>" />
Run Code Online (Sandbox Code Playgroud)
Can't escape identifier `Pair<String, String>` because it contains illegal characters: <>
Run Code Online (Sandbox Code Playgroud)
上述尝试均无效。我该怎么做?
我认为不可能使用泛型类型参数,因此您必须像第一种情况一样回退到原始泛型。我正在使用 java 并且它编译得很好,但是我认为你的编译不正确,因为 Kotlin 不允许原始通用使用。实际上,我发现使用最后一种方法使用单个类型参数时,生成的代码包含可怕的错误。最后,在我看来,泛型类型根本不受支持,也许在将来......最好请求该功能,同时您可以尝试分离参数(如果适用)或使用非泛型超级类型(Object ?? - 它必须是可解析/可序列化的)与强制转换,或者您可能想要创建自己的非通用 Pair 类并仅强制转换组件或特定的“StringStringPair”或将所有参数分组到单个非通用中输入...或切换到java。
归档时间: |
|
查看次数: |
437 次 |
最近记录: |