interface Callback { fun onError(throwable: Throwable) } class Model { init { crashMe(Callback::class.java) { object : Callback { override fun onError(throwable: Throwable) { throw UnsupportedOperationException("") } } } } fun crashMe(clazz: Class, factory: () -> T) { throw UnsupportedOperationException() } }