Знаю яву и не фига не понимаю в котлин коде.
Смотришь в код и ничего знакомого
data class CoverFront
constructor(
/** May contain any keyword from [CoverType]. */
var coverType: String? = null,
/** May contain any keyword from [Media] or a name. */
var media: KeywordOrName? = null,
var mediaCol: MediaCol? = null,
) : AttributeCollection {
/** Construct an empty [CoverFront]. */
constructor() : this(null)
/** Produce an attribute list from members. */
override val attributes: List<Attribute<*>>
get() = listOfNotNull(
coverType?.let { CoverFront.coverType.of(it) },
media?.let { CoverFront.media.of(it) },
mediaCol?.let { CoverFront.mediaCol.of(it) },
)
/** Defines types for each member of [CoverFront]. */
companion object : AttributeCollection.Converter<CoverFront> {
override fun convert(attributes: List<Attribute<*>>): CoverFront =
CoverFront(
extractOne(attributes, coverType),
extractOne(attributes, media),
extractOne(attributes, mediaCol),
)
override val cls = CoverFront::class.java
@Deprecated("Remove this symbol")
@JvmField val Types = this
@JvmField val coverType = KeywordType("cover-type")
@JvmField val media = KeywordOrNameType("media")
@JvmField val mediaCol = AttributeCollection.Type("media-col", MediaCol)
}
override fun toString() = "CoverFront(${attributes.joinToString()})"
}
Например, что тут похоже на яву ?
Только дополнительные костыли для того, чтобы этот класс можно было использовать в java части приложения.
Знание java & kotlin нужно для написания универсального кода. А так только мешает. Синтаксический сахар разный. Общих моментов меньше чем того что различается.