abstract class BaseActivity2 : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) var bindingName = "" var layName = "" javaClass.genericSuperclass?.toString()?.split(".")?.apply { bindingName = this[this.size - 1].removeSuffix("Binding>") bindingName.forEach { if (Character.isUpperCase(it) && layName.isNotEmpty()) { layName += "_" } layName += it.toString() } layName = layName.toLowerCase() } binding = DataBindingUtil.setContentView( this, resources.getIdentifier( layName, "layout", packageName ) ) } lateinit var binding: T }// 顺便给你的 老baseactivity 几个过时注解// @Deprecated("已过时,请使用BaseActivity")//用法class MyActivity : BaseActivity2() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding.tab// 可直调用接用 }}