Runt
2025-03-14 cd771fa4b5d2762478099afdb445578de0fbe2df
代码补充
1 files modified
1 files added
18 ■■■■■ changed files
libmvi/src/main/java/com/runt/open/mvi/base/model/ImpViewModel.kt 8 ●●●●● patch | view | raw | blame | history
libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt 10 ●●●●● patch | view | raw | blame | history
libmvi/src/main/java/com/runt/open/mvi/base/model/ImpViewModel.kt
New file
@@ -0,0 +1,8 @@
package com.runt.open.mvi.base.model
/**
 * @author Runt(qingingrunt2010@qq.com)
 * @purpose
 * @date 9/6/24
 */
class ImpViewModel :BaseViewModel() {}
libmvi/src/main/java/com/runt/open/mvi/base/model/ViewModelFactory.kt
@@ -1,7 +1,9 @@
package com.runt.open.mvi.base.model
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import java.lang.reflect.InvocationTargetException
/**
 * @author Runt(qingingrunt2010 @ qq.com)
@@ -13,11 +15,17 @@
    override fun <T : ViewModel> create(modelClass : Class<T>) : T {
        return try {
            modelClass.newInstance()
            modelClass.getDeclaredConstructor().newInstance()
        } catch (e : InstantiationException) {
            throw RuntimeException("(创建实例失败,没有对应的构造方法,请重写一个实现类)Cannot create an instance of $modelClass" , e)
        } catch (e : IllegalAccessException) {
            throw RuntimeException("Cannot create an instance of $modelClass" , e)
        }catch (e : UnsatisfiedLinkError) {
            throw RuntimeException("Cannot create an instance of $modelClass" , e)
        }catch (e : InvocationTargetException){
            Log.e("ViewModelFactory" , "create: ${e.cause}" , );
            e.cause?.printStackTrace()
            throw RuntimeException("Cannot create an instance of $modelClass" , e)
        }
    }