我有以下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类中,我需要从对象创建中忽略此字段。
答案 0 :(得分:2)
Java不支持此功能,但是您可以做一个简单的技巧。
生成两个构造函数,一个具有可选字段group
,一个不带可选字段。
因此,无需从类中为该字段分配值,只需调用第二个构造函数即可:
public YourClass(String key, String operation, String value, bool search)
{
this (key, operation, value, null, search); //null for the groups
}