Tag: 数据类

使用GSON的Json的Kotlin数据类

我有一个JSON像这样: "topic": { "id": 3, "name": "Variables declaration", "image": "xxx.xxx.xxx", "description": "Variable declaration is basically booking memory for data being used in program" } 我有一个Kotlin数据类像这样 data class Topic(val id: Long, val name: String, val image: String, val description: String) 但我想不出一种方法来序列化/反序列化data class <-> Json像我们以前用java POJO <-> Json做的java POJO <-> Json使用GSON这样 @SerializedName("id") long id; @SerializedName("name") String name; […]

即使我实现了hashCode(),equals()和toString(),我应该使用数据类吗?

我有一个类是一个字符串的解析结果,所以我必须执行toString()返回该源字符串,而不是那些分析的值。 它也有自定义的equals()/ hashCode()机制。 把它标记为数据类还有什么好处吗?

函数到lambda表达式

我有一个数据类,我需要初始化一些List<String> 。 我需要得到一个JsonArray的值(我正在使用Gson)。 我做了这个功能: private fun arrayToList(data: JsonArray, key: String): List<String> { val list = mutableListOf<String>() data.forEach { a -> list.add(a[key].asString) } return list } 我如何转换为lambda表达式? 谢谢。

只有类允许在类文字的左侧

在StackOverflow中我知道很多类似的问题,但没有解决我的问题。 我有一个通用的数据类: data class ServiceCall<out T>(val result: T?, val exception: String?, val pagination: String?, val stringResult: String?) 我正在尝试像这样使用: Gson().fromJson(json, ServiceCall<SurveyListModel>::class.java).result IDE显示错误: 在类文字的左侧只允许使用类 如何解决这个问题? 提前致谢。

如何更新实现通用接口的数据类

我正在努力处理数据类和多态性。 我想从不变性中受益,但仍然能够更新我的状态。 为此,我希望能够使用copy功能。 我们来举个例子。 我有这个类层次结构: interface Aging { val age : Int } data class Cheese ( override val age : Int // more Cheese specific properties ) : Aging data class Wine ( override val age : Int, val grape : String // more Wine specific properties ) : Aging 而现在我想能够做到这样的事情(但这不起作用): class RipeningProcess(){ fun […]

kotlin数据类+ bean验证jsr 303

我试图让Kotlin在spring-data-rest项目中使用jsr 303验证。 给定以下数据类声明: @Entity data class User( @Id @GeneratedValue(strategy = javax.persistence.GenerationType.AUTO) var id: Long? = null, @Size(min=5, max=15) val name: String ) @Size注释在这里没有任何作用,使我能够保存用户名称为1个字符。 当执行完全相同的例子,而不是在Kotlin的Java类中时,它工作的很好。 这使我想到一个Kotlin问题。 在此先感谢您的帮助!

如何用toString扩展一个数据类

我已经创建了一个数据类 data class Something ( val a : String, val b : Object, val c : String ) 后来在我的程序中,我需要这个数据类的字符串表示,我试图扩展toString方法。 override fun Something.toString() : String = a + b.result() + c 这里的问题是,它不允许扩展(覆盖)toString函数,因为它不适用于顶级函数。 如何正确覆盖/扩展自定义数据类的toString方法?

Kotlin解构变量不适用于Pair,Triple或数据类

我最近在kotlinc,命令行环境中尝试了下面的代码。 var greet = Pair("Hello", "World") val (word1, word2) = greet 在控制台输出word1和word2输出下面的消息 >>> word1 error: unresolved reference: word1 word1 ^ 我不确定是否从最新版本的kotlin中删除了分层结构。 目前,在Mac上使用1.0.2版本的kotlinc编译器。

Kotlin数据类复制功能不起作用

也许我错误地解释了data类的copy功能是如何工作的,或者可能存在一个错误,但下面是copy功能不按预期工作的示例: 科特林: data class A { public var x: String? = null public var y: String? = null public var z: B = B.ONE } enum class B { ONE TWO THREE } Java的 A a1 = new A() a1.setX("Hello") a1.setY("World") a1.setZ(B.TWO) A a2 = a1.copy() // a2.x is null // a2.y is null // […]

如何将Java类转换为Kotlin数据类

我使用Android工作室的Kotlin插件将我的Java类转换为Kotlin。 事情不是Kotlin风格。 我想要有Kotlin数据类。 但是,每当我用主要和次要的构造函数创建它将无法正常工作。 在我的情况下,正确的DATA类实现是什么? class Task { @SerializedName("_id") var id: String? = null @SerializedName("text") var taskTitle: String? = null @SerializedName("completed") var isCompleted: Boolean? = null constructor(taskTitle: String) { this.taskTitle = taskTitle } constructor(taskTitle: String, completed: Boolean?) { this.taskTitle = taskTitle this.isCompleted = completed } constructor(id: String, taskTitle: String, isCompleted: Boolean?) { this.id = id […]