Skip to content

Instantly share code, notes, and snippets.

@adam-arold
Created January 11, 2019 23:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adam-arold/bea811884b15ddee9112bdfd426199ec to your computer and use it in GitHub Desktop.
Save adam-arold/bea811884b15ddee9112bdfd426199ec to your computer and use it in GitHub Desktop.
// reified is not visible from Java
class EventBus {
inline fun <reified T : Event> subscribe(
noinline callback: (T) -> Unit) {
// ...
}
}
// @JvmSynthetic was designed for this purpose
interface EventBus {
@JvmSynthetic
fun <T: Event> subscribe(eventType: KClass<T>)
}
// extension functions are not visible on the same class
inline fun <reified T : Event> EventBus.subscribe(
noinline callback: (T) -> Unit) {
return subscribe(
klass = T::class,
callback = callback)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment