问题:Cannot create an instance of class com.fawcar.dlife6.appmarket.databinding.ActivityAppSetupBinding
报错的是画红线的一行,问题出在了:
Type type = parameterizedType.getActualTypeArguments()[1];
原因:
画红线的中parameterizedType.getActualTypeArguments()[1]代表了viewModel
但是我原来写的是parameterizedType.getActualTypeArguments()[0]
所以报错没有VM实例
注:
ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass(); if (parameterizedType == null) { finish(); throw new IllegalArgumentException("incorrect view model class param"); } Type type = parameterizedType.getActualTypeArguments()[1];
parameterizedType.getActualTypeArguments()[1]代表的是基类中<>(
BaseActivity1<VB extends ViewBinding, VM extends BaseViewModel>
)的第2个泛型