feat: 优化反射效率
This commit is contained in:
@ -23,7 +23,7 @@ abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
|
||||
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||
val vbClass: Class<VB> =
|
||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class<VB>
|
||||
val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java)
|
||||
val inflate = vbClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||
inflate.invoke(null, layoutInflater) as VB
|
||||
}
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> :
|
||||
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||
val vbClass: Class<VB> =
|
||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class<VB>
|
||||
val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java)
|
||||
val inflate = vbClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||
inflate.invoke(null, layoutInflater) as VB
|
||||
}
|
||||
protected val mViewModel: VM by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||
|
||||
@ -20,7 +20,7 @@ abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity()
|
||||
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||
val vbClass: Class<VB> =
|
||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class<VB>
|
||||
val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java)
|
||||
val inflate = vbClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||
inflate.invoke(null, layoutInflater) as VB
|
||||
}
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment() {
|
||||
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||
val vbClass: Class<VB> =
|
||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class<VB>
|
||||
val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java)
|
||||
val inflate = vbClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||
inflate.invoke(null, layoutInflater) as VB
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user