Anulación de la fuerza Kotlin de una function

Estoy creando una class base.
Tengo start () con algún código .
Y una barra () que necesita ser sobreescrita por una class que henetworkinga Foo

start () llamadas bar ()

Mi ejemplo (foo.kt):

open class Foo { fun start() { bar() //... } fun bar() { TODO("implement me in deriving class") } } 

No me gusta bar () lanzando una exception . No me gusta salir de la barra () con el cuerpo en blanco tampoco

¿Hay algo que olvidé que es una mejor alternativa en Kotlin?

Puedes hacer que tu método (y, por consiguiente, tu class) sea abstract :

 abstract class Foo { fun start() { bar() //... } abstract bar() } 

Esto forzará a cualquier class no abstracta que henetworkinge de Foo a implementar el método de bar , y también evitará que cualquier persona cree directamente una instancia de la class base de Foo .

Puede cambiar el código pnetworkingeterminado generado en Android Studio / Intellij:

 File -> Settings Then look for Editor -> File and Code Templates Code -> New Kotlin Function Body 

Reemplazar TODO("not implemented") con // TODO: not implemented

  • Parámetro constructor de Kotlin sin getter
  • Verificación del tipo genérico del método Kotlin
  • ¿Cómo usar types personalizados para los parameters de Retrofit @Query?
  • ¿Cómo puedo llamar a los methods de Kotlin con generics reificados de Java?
  • ¿Hay alguna forma de reutilizar una instancia de Job?
  • JVM - Abrir página web y ejecutar código Javascript
  • Base de datos de android de Kotlin: no se puede convertir java.lang.String en android.database.Cursor
  • Eclipse - Cómo agregar Kotlin a un proyecto Tomcat - Comstackr Kotlin Y files Java
  • Kotlin KDoc: ¿Documentación?
  • ¿Por qué no puede procesar daga estos kotlin generics?
  • Fundición genérica de Kotlin a una subclass más específica