La mejor forma de manejar los retornos en el pnetworkingicado

Cuando devuelvo una function en un pnetworkingicado, el comstackdor no la registra y todavía se queja

Se requiere una expresión 'return' para una function con un bloque de cuerpo

La solución que encontré es poner un tiro después del pnetworkingicado.

fun boo(): Int { sth.apply { return sthElse } throw Exception("Unkown View type") } 

Me pregunto si hay una manera más amable.

ps: el código de Android real

 override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder { LayoutInflater.from(parent?.context) .inflate(R.layout.item_category_node, parent, false) .apply { return CategoryNodeViewHolder(this, this@CategoriesAdapter) } throw Exception("View type error") } 

EDITAR: después de ver tu ejemplo:

  override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int) = LayoutInflater.from(parent?.context) .inflate(R.layout.item_category_node, parent, false) .let { CategoryNodeViewHolder(this, this@CategoriesAdapter) } 

La function de extensión 'ejecutar' debe usarse en estas situaciones. De acuerdo con kotlin docs run

Llama al bloque de function especificado y devuelve su resultado.

Mi código se ve así ahora

 override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder { return LayoutInflater.from(parent?.context) .inflate(R.layout.item_category_node, parent, false) .run { CategoryNodeViewHolder(this, this@CategoriesAdapter) } //throw Exception("Unkown View type") } 

La function aplicar ya tiene una statement de devolución del object al que se está llamando, consulte https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/apply.html

 override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int) = CategoryNodeViewHolder( LayoutInflater.from(parent?.context).apply{ inflate(R.layout.item_category_node, parent, false) }, this@CategoriesAdapter) 

Esto ahora está devolviendo el tipo de object correcto para el método, al instanciar el layoutInflater y aplicando el inflado requerido para el CategoryNodeViewHolder antes de que se use para instanciar el CategoryNodeViewHolder.

  • ¿Cómo hacer multibinding usando el contenedor de recuperación de dependencia Kodein?
  • ¿Hay alguna diferencia entre "object receptor" y "receptor de extensión"
  • Firebase y recuperación de elementos
  • gradle no puede comstackr classs de Java usando la class kotlin
  • Android Studio convirtiendo Java en error de Kotlin No se puede inferir un tipo para este parámetro. Por favor especifíquelo explícitamente
  • Cómo convertir java.util.stream.Stream <Something> en kotlin.Sequence <Something>
  • Convertir matriz en list en Kotlin
  • Lista de carga de ConfigurationProperties desde YML
  • Kotlin - extraer la list de objects padre de los elementos en la Colección
  • cómo convertir la date UTC a locale la hora GMT en Android
  • nullPointerException en shanetworkingpreferences class auxiliar Al ejecutar una testing