Как создать экземпляр 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
}