问题标签 [data-class]
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.
json - Json 到 Kotlin 数据类
有没有一种方法和/或库可以像在 Scala Json.Spray 中一样从 Json 自动创建 Kotlin Data 类?
像这样的东西:
inheritance - 在 Kotlin 中扩展数据类
数据类似乎是 Java 中老式 POJO 的替代品。这些类允许继承是可以预料的,但我看不出扩展数据类的方便方法。我需要的是这样的:
上面的代码由于component1()
方法冲突而失败。只在其中一个类中留下data
注释也不起作用。
也许还有另一种方式来扩展数据类?
UPD:我可能只注释子子类,但data
注释只处理构造函数中声明的属性。也就是说,我必须声明所有父级的属性open
并覆盖它们,这很难看:
java - 从 java 类调用时,Kotlin 数据类复制功能不起作用
也许我误解了类的copy
功能是如何data
工作的,或者可能存在错误,但以下是该copy
功能未按预期工作的示例:
科特林:
爪哇
似乎这copy
只是创建一个新实例A
而不是复制这些值。如果我将变量放在构造函数中,则会分配值,但这与构造一个新实例没有什么不同。
reflection - 有没有办法从常规的 Kotlin 类中识别出 Kotlin 数据类?
有没有办法从常规的 Kotlin 类中识别出 Kotlin 数据类?就像使用反射一样?
kotlin - Kotlin 数据类的属性包含/排除
假设我只希望在生成的 equals 和 hashCode 实现中包含一个或两个字段(或者可能排除一个或多个字段)。对于一个简单的类,例如:
Groovy 有这个:
龙目岛有这个:
在 Kotlin 中这样做的惯用方式是什么?
到目前为止我的方法
只是感觉不对……我真的不想name
变得可变,而且额外的构造函数定义很丑陋。
kotlin - 如何模拟或实现 Kotlin 数据类的 IS-A 关系
我一直在探索 Kotlin,并编写了一个小程序/脚本来完成我觉得无聊的任务。
在程序开发中,我使用数据类来表示播放列表。在设计的某一时刻,我想要一种特殊的类型Playlist
是EmptyPlaylist
.
我无法让它工作。
您将如何与 Kotlin 建立这种关系?
在 Java 中,我只是扩展Playlist
(或者可能为它们创建一个接口/抽象类来继承)。
我只是想能够拥有一个List<Playlist>
而不是List<Playlist?>
最后我只是创建了一个Playlist
对象,但我对是否可以使用数据类创建 IS-A 层次结构感兴趣。
android - RealmObject 的 Kotlin 数据类
我正在使用 Kotlin 和 Realm 编写数据类
我必须将数据保存到db,所以我使用Realm来保存它。但正如我们所知,如果我想将类保存到 Realm,则AuthToken
类必须扩展RealmObject
.
这就是问题所在,Kotlin 说数据类不能扩展类。所以我放弃了数据类,只使用普通的 Kotlin 类作为模型,那么另一个问题来了:
Kotlin 类没有 getter 或 setter。正如我们所知,Realm 类必须将所有属性设置为私有并编写 getter 和 setter。
现在我想知道如何解决这个问题。
kotlin - Kotlin:实现者必须是数据类的接口?
是否有我可以扩展的接口或其他方式来创建实现类必须是数据类的接口?访问数据类 API 方法(例如 copy())会很有用。
kotlin - Kotlin 数据类:如果我在编译时不知道其名称,如何读取属性的值?
如果仅在运行时知道属性名称,如何读取 Kotlin 数据类实例中的属性值?
java - Kotlin 数据类实现 Java 接口
我正在尝试将 Kotlin 引入我当前的项目中。我决定从实体开始,它似乎完美地映射到数据类。例如我有一个数据类:
其中实现了Java接口:
但由于某种原因,编译器不理解该方法已经实现:
“视频”类必须声明为抽象或实现抽象成员 public abstract fun getId(): kotlin.Long!在 net.alfad.data.Entity 中定义
我是否必须为 id 参数使用任何其他关键字?"!" 是什么意思 在签名中是什么意思?