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) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as 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
|
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) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as 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
|
inflate.invoke(null, layoutInflater) as VB
|
||||||
}
|
}
|
||||||
protected val mViewModel: VM by lazy(mode = LazyThreadSafetyMode.NONE) {
|
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) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as 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
|
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) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
(javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as 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
|
inflate.invoke(null, layoutInflater) as VB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user