gpt4 book ai didi

android - 使用适配器时,“when”表达式必须是详尽的错误

转载 作者:行者123 更新时间:2023-12-02 15:20:45 24 4
gpt4 key购买 nike

我想做这样的事情:

class MyPagerAdapter : PagerAdapter() {
override fun getItem(position: Int) = when(position) {
0 -> Fragment0()
1 -> Fragment1()
}

override fun getCount() = 2
}

我确信适配器只包含 2 个项目,因此 getCount() 仅返回 2。但它显示一条错误消息,指出 'when' 表达式必须是详尽的,添加必要的“其他”分支。我知道我可以添加一个else来解决它,但是编写这样的代码真的很难看:

    when(position) {
0 -> Fragment0()
1 -> Fragment1()
else -> Fragment() // Impossible to get here
}

有没有更好的办法解决?谢谢。

最佳答案

1)如果无法到达其他分支,那么您可以

throw IllegalStateException("Fragment $position is not correct")

您的代码可以随时更改。它将帮助您更好地了解您发送的值不正确。

2) 另外,如果只有两种情况,则可以使用 if (..) {} else {} 语句

3) 您可以使用枚举值来没有 else 分支(而不是位置)。

关于android - 使用适配器时,“when”表达式必须是详尽的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52812997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com