问题标签 [kotlin-reflect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reflection - Kotlin 中 KProperty1 的通用扩展
我有以下代码:
我正在尝试KProperty1
使用泛型为类创建扩展函数,但我的泛型与我期望的不匹配。main()
列出了这两个函数的一些用途,最后有 3 个意想不到的结果,并描述了我应该期待什么。
spring - kotlin:如何获取 Object 中的字段名称?
我有一@ConfigurationProperties
堂课,比如ConfigProperty
。我像这样使用它
org.springframework.ui.Model#addAttribute("config1", configProperty.config1) org.springframework.ui.Model#addAttribute("config2", configProperty.config2)
我不想重复自己。所以我想这样:
模型#addAttribute(::configProperty.config1.name, configProperty.config1) 模型#addAttribute(::configProperty.config2.name, configProperty.config2)
但是语法错误,有人有什么建议吗?
android - 如何为 Kotlin-reflect 设置 proguard?
我目前正在使用 Kotlin-reflect 制作一个模块。当我尝试将二进制文件构建为发布模式时,没有 proguard 错误,但模块无法正常工作。
我会像这样设置 proguard-rules.pro 文件。( https://github.com/square/moshi/issues/402 )
android - 在 Kotlin 扩展函数中反映“this”的名称
有没有办法在扩展函数中获取“this”的名称?
kotlin - 是否可以在运行时找到方法,在 Kotlin 中传递变量或字符串名称,就像在 groovy 中一样
例如,在 groovy 中可以使用以下代码执行方法:
这在 Kotlin 中也可以吗?
generics - 将 JSON 数组转换为列表的更好方法给定一个 KClass通过 Gson
我正在构建一个多平台 JSON 库作为原型,以了解如何构建事物。
目前我有这个扩展函数可以从 JSON 数组转换为对象列表。
为 Jackson 实现这个接口相当简单:
现在我正在尝试对 Gson 做同样的事情:
查看 Java 中的其他答案,这似乎是要遵循的模式:
我的 Kotlin 等效失败:
和:
java.lang.ClassCastException:java.util.ArrayList 无法转换为 [Ljava.lang.Object;
这个:
和这个:
失败:
java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap 无法转换为 io.jvaas.integration.gson.SampleClass
SampleClass
的类型在哪里T
如果我删除类型并打印结果
我看到了正确的数据:
[{blah1=文本,blah2=123.0,blah3=567.0},{blah1=文本,blah2=123.0,blah3=567.0}]
类 java.util.ArrayList
类 java.util.ArrayList
打印出该 ArrayList 的第一项,但是我看到它不是 SampleClass 类型,而是 LinkedTreeMap
com.google.gson.internal.LinkedTreeMap 类
将该列表中的每个项目转换为字符串,然后将每个单独的 JSON 块转换为对象似乎可行,但看起来很 hacky
有没有更好的方法来做到这一点?还是 Gson 总是将更复杂的 JSON 数据转换为 TreeMaps 和 LinkedTreeMaps?
kotlin - Kotlin 类应该有一个无参数构造函数
我使用以下方法实例化我的对象:
但我在那一行遇到了一个例外:
android - Kotlin 默认构造函数中的两种附加类型?
由于我一直在使用kotlin-reflect来调用我的默认值并声明了一个,因此我看到了第二个不同的构造函数。
我已经意识到两个不同的字段int arg3和kotlin.jvm.internal.DefaultConstructorMarker arg4添加到我的构造函数中。
我的实际问题是为什么我有这两个字段,它背后的逻辑是什么?
提前致谢。
kotlin - 比较kotlin中对象的共同属性值
我正在尝试编写一个方法来比较 Kotlin 中两个对象的“公共属性”(共享相同的名称/类型)。它旨在用于测试,用于将“预期”与不属于同一类型的“实际”对象进行比较。
到目前为止,这是代码的简化版本:
我目前在底部附近的“pair.first.get”下收到此错误消息:
外投影类型
KProperty1<out Any, Any?>
禁止使用public abstract fun get(receiver: T): R defined in kotlin.reflect.KProperty1
我知道我显然不能使用抽象方法,我应该怎么做呢?