[Kotlin] 특정 프로퍼티만 상속 안되게 할 수있을까요?
조회수 278회
안드로이드 스튜디오를 하고 있구요
사진처럼 클래스를 그룹화하여 리스트를 나타내려고합니다.
하나의 그룹에 헤더한개와 그 아래 여러개의 리스트 아이템으로 구성되어있는 형식으로요.
sealed 클래스를 사용하려고 했는데 문제가 좀 있네요.
sealed class GroupedItem(val layoutId : Int = 1) {
val header: Header = Header() // 서브 클래스에 상속되어 오류가 남.
val itemList: List<Item> = listOf() // 서브 클래스에 상속되어 오류가 남.
data class Header(
val id: String = "",
) : GroupedItem(someValue)
data class Item(
val id: String = "",
val set: Int = 1,
) : GroupedItem(someValue)
}
그룹화 코드
for (i in 0 until headerNumber) {
val headerText = "Header $i"
val header = GroupedItem.Header(headerText)
val itemList = arrayListOf<GroupedItem.Item>()
val indexNumber = Random.nextInt(2, 5)
for (j in 0 until indexNumber) {
val itemText = "Item $j"
itemList.add(GroupedItem.Item(itemText))
}
val groupedItem = GroupedItem(header, itemList)
groupedItemList.add(groupedItem)
}
이런식으로 구조화를 하고 싶은데 보시는 코드대로 Header와 ItemList 프로퍼티가
서브클래스에 상속되기때문에 그.. 에러가 납니다.
이경우에 이 두 프로퍼티만 상속 불가능하게 하고 싶은데 방법이 있을까요?
댓글 입력