android - 无法使用 KClass<> 推断抽象类构造函数中的类型
问题描述
我正在尝试制作一个抽象的基础片段并在其中初始化视图。
abstract class BaseFrag<V: View>(private val clazz: KClass<V>) : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? =
clazz.constructors.firstOrNull()?.call(context)
}
这就是我可以用它初始化片段的方式:class HomeFrag : BaseFrag<HomeView>(HomeView::class)
有没有办法让 HomeView 推断并输入class HomeFrag : BaseFrag(HomeView::class)
?
解决方案
out
使用修饰符尝试这种方法:
abstract class BaseFrag(private val clazz: KClass<out View>) : Fragment() { ... }
class HomeFrag : BaseFrag(HomeView::class)
推荐阅读
- xpath - Xpath 完成
- sql-server - 是否可以根据保存在sqlserver中的这种格式(May 31 2019 11:56PM)对记录进行排序
- hadoop - 如果两者具有相同的位置,删除托管表将删除外部表?
- flutter - Flutter_web 使用 google_sign_in
- java - 当我添加计时器时,图像将不再加载
- macos - 适用于 macOS 的 Parallels 虚拟机与主机完全隔离
- lodash - 如何打破 Lodash 嵌套循环
- wordpress - 订单页面列中的自定义结帐字段 | 电子商务
- customization - ns2无线仿真中有什么方法可以追踪到具体的节点吗?
- css - Gulp sass 编译复制 scss 文件