问题标签 [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 投票
1 回答
1521 浏览

kotlin - How to hash data class with array property

I have data class ItemMainData(val title: String?, val fields: Array<Field>). What's the proper way to override hashCode()?

I am aware of this answer (Equals method for data class in kotlin), but in that case the hash of the array is sufficient to be the hash of the data class. It's not so in my case

0 投票
1 回答
41 浏览

null - 如果可能无法设置数据,是否有比将数据类构造函数值设置为 null 更好的方法

我有一种情况,我在 kotlin 中创建一个休息客户端作为一个实际的学习练习,最近遇到了这个问题:

问题是这样的,如果我返回 200,我将有数据填充“a”到“f”,但如果我得到 401 或几乎任何其他状态代码,我将没有数据填充“a”通过'f',因此我选择了上述解决方案,我只强制我将始终返回的状态代码不为空,然后将所有其他值默认为空。

我不想沿着将默认值设置为“”或-1之类的东西的路线走下去,因为如果用户不检查状态代码,这些数据总是有可能以某种方式通过。

真的我想传达信息不存在,这似乎可以做到这一点,但我想知道是否有更好的方法。

0 投票
1 回答
89 浏览

javascript - 如何使用 highcharts 指向数据中第二个索引的范围(dataClasses)?

我已经使用 highchart 绘制了一个热图,但我想为 y 轴提供颜色范围,即数据数组中的第二个索引,但它会自动采用第三个索引。

下面是jsfiddle代码。

我的代码链接

在此处输入图像描述

实际数据格式如下

现在范围绘制在第二个索引(即 10,19)的基础上,但我想根据第一个索引(即 0,1)进行绘制。

0 投票
1 回答
1064 浏览

constructor - 如何在初始化方法之前将函数应用于数据类构造函数中定义的值?

假设我有一个这样的数据类:

我希望能够在调用该方法somethingElse之前应用一个函数。init在这种情况下,我想\n从 String 中删除所有字符,somethingElse同时保持字段的不变性(即somethingElse必须仍然是 a val)。我想在 Java 中做类似的事情:

我当然可以在 Kotlin 中创建一个普通类(即没有数据类),但我想MyData成为一个数据类。

在 Kotlin 中执行此操作的惯用方式是什么?

0 投票
1 回答
1558 浏览

interface - 带有接口样板的 Kotlin 数据类

Kotlin 中的数据类非常适合消除 Java pojo 的大部分样板;但是当一个数据类镜像一个接口时,这两个声明仍然显得多余。举这个例子。

是否有任何简写来消除这种代码重复,即告诉 Kotlinval接口中的每个都应该由val数据类中的相同实现?

0 投票
1 回答
747 浏览

constructor - Kotlin 数据类便利构造函数

我对 Kotlin 很陌生,并且一直坚持制作类似于此 Swift 结构的数据类:

为了清楚起见,我们假设toInt()不会抛出,并且版本字符串中总是有 3 个组件。

我有两个可行的解决方案。使用伴随对象:

或者写一些看起来很糟糕的东西:

但是为方便的构造函数使用更长的方法名称似乎很奇怪,第二个选项很糟糕。

这样的事情可能吗?

0 投票
2 回答
3047 浏览

constructor - Local parameters in Kotlin's primary constructor of a data class

Regarding data classes it is forbidden to not use var or val keywords in the primary constructor, i.e. every parameter is implicitly turned into a class property. However, sometimes there are cases which I don't want each parameter to be turned into a class property.

So, as far as I can see, there is no chance of passing a parameter in a primary constructor that is accessible only within the constructor and is forgotten after the construction of the instance has finished. Is there a good reason for this?

The only way I see to get around this, is not to use data classes or to use a secondary constructor that allows for non-var/val-prefixed variables. However, having a lot of parameters that need to be passed, a secondary constructor would immensely inflate the class. Of course, I could wrap all the parameters into another object, but that would just kind of shift the problem to another place.

Is there a recommended approach or pattern in order to cope with that?

0 投票
1 回答
1608 浏览

kotlin - 数据类中的 kotlin 默认值为零

我有一个简单的用户数据类

如您所见,最后一个参数是 val timestamp: Long = System.currentTimeMillis()

响应来自使用改造的网络并使用解析GSON

timestamp没有响应 json 它只是我需要做一些逻辑的额外字段。问题是值总是0. 它应该是当前时间戳

0 投票
3 回答
824 浏览

kotlin - 扩展其他(密封)类的数据类中的重复字段?

当数据类扩展一个包含非抽象 open val 属性的密封类时,生成的子数据类包含与父类的私有字段重复的私有字段。

输出javap -p Foo.class

并且javap -p Bar.class

的字节码Bar.class包含自己的私有字段field1;父类中的字段似乎没有被子类重用。

当使用使用反射设置字段的框架时,将设置哪个字段?为什么父类中的字段不被子类重用?有没有办法改变父类中字段的可见性,protected以便子类可以重用它?

0 投票
1 回答
6206 浏览

kotlin - 通过辅助构造函数初始化 Kotlin 数据类的 val 属性

对于上面的类,Kotlin我可以通过辅助构造函数初始化val属性,但Data 类不允许这样做

我无法理解的是,电子邮件属性在哪里已经初始化,因为我没有声明任何初始化?