问题标签 [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.

0 投票
2 回答
1555 浏览

android - 为什么我的数据类给出空值,除非我对其应用默认值?

我正在尝试使用 kotlin 的数据类显示来自服务器的数据。它几乎可以正常工作,但是在某些情况下,每当我获取响应时,我不知道为什么它仍然给出空值,除非我""为 msg 添加默认值 ()。

  1. 这是我的数据类

    /li>
  2. 这是我从服务器的回复

    /li>
0 投票
1 回答
430 浏览

spring - 如何在后期初始化中保持不可为空的属性

以下问题:在客户端/服务器环境中Spring-BootKotlin客户端想要创建类型 A 的对象,因此通过 RESTful 端点将数据发布到服务器。

data class实体 A在 Kotlin中实现为 a ,如下所示:

从业务角度来看,该属性(也是主键)决不能为空。但是,客户端不知道它,因为它是由服务器上的 Spring @Service Bean 生成的,代价非常昂贵。

现在,在端点处,Spring 尝试将客户端的有效负载反序列化为类型 A 的对象,但是,此时该对象mandatoryProperty是未知的,这将导致映射异常。

有几种方法可以规避这个问题,但没有一个真的让我感到惊讶。

  1. 不要期望端点有 A 类型的对象,而是会得到一堆描述 A 的参数,这些参数会一直传递下去,直到实体被实际创建并且强制属性存在。实际上相当麻烦,因为有很多属性,而不仅仅是一个属性。

  2. 与 1 非常相似,但创建了一个 DTO。然而,我的最爱之一,因为data classes无法扩展,这意味着将 A 类型的属性复制到 DTO 中(强制属性除外)并将它们复制过来。此外,当 A 增长时,DTO 也必须增长。

  3. 使mandatoryProperty 可以为空并使用!! 整个代码中的运算符。可能是最糟糕的解决方案,因为它消除了可空变量和不可空变量的感觉。

  4. 客户端将为mandatoryProperty 设置一个虚拟值,该值在属性生成后立即被替换。但是,A 由端点验证,因此虚拟值必须服从其 @Pattern约束。所以每个虚拟值都是一个有效的主键,这给我一种不好的感觉。

我可能监督过的任何其他更可行的方法?

0 投票
0 回答
419 浏览

generics - 尝试在 kotlin 中为数据类编写补丁函数

这是我的问题。

假设我们有一个data class User

我们有 4 个用户对象

我想编写一个扩展函数patch,它接受 2 个User对象(或任何其他数据类)并返回另一个 User,它是通过User首先应用 second 的非 null 字段的补丁创建的。

所以对于上述对象,补丁函数的行为应该如下 -

到目前为止,我能想到的解决方案涉及反射和修改接收器User。这是代码。

我怎样才能编写一个通用的扩展函数,它可以实现上述行为并且不修改原始对象?

0 投票
1 回答
994 浏览

json - 如何编写一个kotlin数据类来匹配json?

我正在使用 Retrofit 调用 API 并使用 converter-gson 将响应 json 转换为 kotlin

这是回应

这是数据类。

如何完成这门课?

0 投票
1 回答
1498 浏览

spring - How to use extension properties in Kotlin as constants?

I have data class

I hate using "" for initialization. I would like use something like

I know about extension properties or functions, but they looks aren't so good as well

How do you write entity classes? Is there more elegant way?

0 投票
1 回答
3196 浏览

inheritance - (Kotlin)将参数从数据类构造函数传递给超级构造函数?

我有一个抽象类:
abstract class SuperClass(private val privateVal: Int)

我有一个data class扩展抽象类。( DataClass)

如何privateVal在构造函数中作为参数DataClass并将其传递给SuperClass构造函数?

以下内容不起作用,因为数据类构造函数中只允许使用vals 和s:var
data class DataClass(privateVal: Int) : SuperClass(privateVar)

0 投票
1 回答
83 浏览

kotlin - Kotlin 数据类和 30 多个属性

我们如何在 kotlin 中创建数据类,其中类包含超过 25 个以上的属性。

用例是否在 java 中有一个类具有超过 25 个以上的属性并且需要转换为 kotlin 数据类,而且问题是这样做是否合适,如果合适,我们该怎么做?

0 投票
1 回答
710 浏览

kotlin - Room:带有子查询的查询。如何对数据类建模?

我想对房间数据库执行查询,结果是一个记录列表,这些记录由几个表中的列组成。首先我有一个子查询,然后与另一个表连接。在结果中,我只选择了几列。在此查询中,我使用 3 个表。

当我编译项目时,我收到错误消息:

无法弄清楚如何从游标中读取此字段。私人 org.joda.time.DateTime createdDate; .

错误指向此 DateTime 字段。

这是我的界面:

我的 SomeObjectSummaryDB 自定义类如下所示:

我已经看到了一些使用 @Embedded 和 @ForeignKey 注释的示例。这是我在这种情况下需要的东西吗?如果是这样,任何人都可以帮助我获取我的对象列表需要什么?

我需要为子查询和整体结果创建模型吗?如果是这样,这些模型会是什么样子?

任何帮助是极大的赞赏!

0 投票
1 回答
528 浏览

kotlin - 在 Kotlin 中为 POJO 添加额外的属性

我通过 Retrofit 从 API 调用中获得以下模型:

出于与此SO 答案相关的原因,我需要添加一个额外的属性。

额外的参数将是一个数据类 PaymentsMethods:

创建时如何将属性值添加到 User 类?

这是我到目前为止所尝试的:

它们都不起作用。任何建议将不胜感激。

0 投票
2 回答
1802 浏览

kotlin - Kotlin 数据类复制扩展

我正在尝试为一个不错的 kotlin 数据类解决方案找到一个解决方案。我已经有了这个:

此方法的结果是changedTest对象具有classMember = true,otherClassMember = falseexample = 2

这个解决方案的问题是,类属性不是不可变的var声明。有人知道如何优化我的方法来改变varval