I'm trying to use a function with reified type as extension function but I don't think that it's possible because after I checked the generated bytecode I have find that the method signature is private, any work around to make it public ?
CommonExtensions.kt
inline fun<reified T: Activity> Context.startActivity() {
    val intent = Intent(this, T:: class.java)
    startActivity(intent)
}
fun View.visible() {
    visibility = View.VISIBLE
}
Kotlin Bytecode :
private final static startActivity(Landroid/content/Context;)V
    @Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
   ...
Client Code :
Kotlin file
override fun showMessageEmptyOfferFeeds() {
        mOfferFeedsWarning.visible() // "visible()" extension func RESOLVED
}
Java file
showProfileDetailsUi(){
   startActivity<DetailActivity>() //"startActivity()" extension func NOT RESOLVED
}
				
                        
Yes you can use
inlinefunctions withreifiedtypes as extension functions. It's madeprivateso that Java code can't access it (btw this is not the case for "normal"inlinefunctions). Such aninlinefunction can beprivatefor Kotlin because inline functions are copied to the place where they are invoked.An example:
Read more about
reifiedin another SO question, I answered: https://stackoverflow.com/a/45952201/8073652Once again: You cannot use
inlinefunctions withreifiedtyped from Java.