Hi guys, I've done a lot of programming in Kotlin ...
# announcements
n
Hi guys, I've done a lot of programming in Kotlin but I cannot figure out why this code crashes. Compiler doesn't complain. It only crashes at runtime. It's just a bunch of nested classes topped with a bunch of generics:
Copy code
class Huh {
    private interface UriFilter

    open class Filter<V>(val name: String, val state: V) {
        open class CheckBox(name: String, defValue: Boolean): Filter<Boolean>(name, defValue)
        open class Select<V>(name: String, state: Array<V>): Filter<Array<V>>(name, state)
        open class Group<V>(name: String, state: List<V>): Filter<List<V>>(name, state)
    }

    class AdvancedOption(name: String, val param: String, defValue: Boolean = false): Filter.CheckBox(name, defValue), UriFilter
    class RatingOption : Filter.Select<String>("", arrayOf("")), UriFilter
    class AdvancedGroup : UriGroup<Filter<*>>("", listOf(
            AdvancedOption("", "", true),
            AdvancedOption("", "", true),
            AdvancedOption("", ""),
            AdvancedOption("", ""),
            AdvancedOption("", ""),
            AdvancedOption("", ""),
            AdvancedOption("", ""),
            AdvancedOption("", ""),
            RatingOption()
    ))

    open class UriGroup<V>(name: String, state: List<V>) : Filter.Group<V>(name, state), UriFilter

    companion object {
        @JvmStatic fun main(args: Array<String>) {
            val test = Huh.AdvancedGroup()
            println(test.name)
            println(test.state)
        }
    }
}