Как создать экземпляр Java объекта из класса данных Kotlin, но не включать все поля?

У меня есть следующий класс данных 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 ответ

Java не поддерживает это, но вы можете сделать простой трюк.

Генерация двух конструкторов, один с необязательным полем groupодин без него. Поэтому из классов вам не нужно присваивать значение этому полю, просто вызовите второй конструктор:

public YourClass(String key, String operation, String value, bool search) 
{
  this (key, operation, value, null, search); //null for the groups
}
Другие вопросы по тегам