Я хочу создать класс данных, который может принимать как список, так и изменяемый список, и если список является экземпляром MutableList, тогда напрямую сделайте его свойством else, если это список, затем преобразуйте его в MutableList, а затем сохраните его.
data class SidebarCategory(val title: String, val groups: MutableList<SidebarGroup>) {
constructor(title: String, groups: List<SidebarGroup>) :
this(title, if (groups is MutableList<SidebarGroup>) groups else groups.toMutableList())
}
В приведенном выше коде Platform declaration clash: The following declarations have the same JVM signature
ошибка возникает из-за вторичного конструктора класса (2-я строка).
Как мне подойти к этому? Должен ли я использовать так называемый фальшивый конструктор (Companion.invoke ()) или есть какой-то лучший обходной путь?
Collection
вместоList
во втором конструкторе - person IR42   schedule 26.05.2020Collection<out E>
List<out E> : Collection<E>
- person Animesh Sahu   schedule 26.05.2020List
, иMutableList
сопоставлены с одним и тем же классомjava.util.List
и из JMV, похоже, чтоSidebarCategory
имеет два идентичных конструктора. kotlinlang.org/docs/reference/java-interop.html#mapped- типы - person IR42   schedule 26.05.2020