【发布时间】:2020-11-21 22:37:34
【问题描述】:
我有一个逻辑上只能有 3 个值的代码。但是 when 赋值是在一个 Int 变量类型上。如果我没有 RecyclerView.ViewHolder 对象要返回,如果 when 表达式中没有任何“情况”不会发生(这种情况不可能),我该怎么办。 我可以用“丑陋”的解决方案来解决它,如果 'else' 则返回我在现有案例中返回的 RecyclerView.ViewHolder 之一,但我想知道是否有更优雅的方法来处理这种情况。 我有以下代码:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return when (viewType)
{
DataTypesEnum.COUNTRY_ITEM.ordinal -> CountryDataItem.onCreateViewHolder(parent)
DataTypesEnum.LEAGUE_ITEM.ordinal -> LeagueDataItem.onCreateViewHolder(parent)
DataTypesEnum.GAME_ITEM.ordinal -> GameDataItem.onCreateViewHolder(parent)
}
}
编译器说:
when'表达式必须是详尽的,添加必要的'else'分支
【问题讨论】: