如何从Kotlin数据类创建对象的Java实例,但不包括所有字段?

时间:2019-01-10 08:57:04

标签: java kotlin dto data-class

我有以下Kotlin数据类:

data class Filter @JvmOverloads constructor(
        val key: String? = null,
        val operation: String? = null,
        val value: String? = null,
        val group: String? = null,
        val searchInTranslations: Boolean? = null)

我用Java代码创建此类的实例。但是我想创建一个包含group字段以外的所有字段的实例。如何用Java做到这一点?

我无法为group分配默认值,因为在某些Java类中,我确实为此字段分配了一个值,在其他Java类中,我需要从对象创建中忽略此字段。

1 个答案:

答案 0 :(得分:2)

Java不支持此功能,但是您可以做一个简单的技巧。

生成两个构造函数,一个具有可选字段group,一个不带可选字段。 因此,无需从类中为该字段分配值,只需调用第二个构造函数即可:

public YourClass(String key, String operation, String value, bool search) 
{
  this (key, operation, value, null, search); //null for the groups
}