我有一些与此类似的 kotlin 代码:
Thread {
...
Thread {
...
return@Thread
...
}.start()
...
}.start()
现在我收到以下警告:
我知道 kotlin 对于此时要返回哪个线程感到困惑,无论是外线程还是内线程。但我不知道如何告诉它,Android Studio 也没有多大帮助,因为它只建议编辑此警告的选项:
我尝试为线程命名,并认为 kotlin 可能足够聪明来检查这一点,但我想这可能是不可能的,因为返回标签可能不会在运行时解释。
我意识到我可以将内部线程导出到函数中,从而使线程不会相互干扰,如下所示:
Thread {
...
startInnerThread()
...
}.start()
fun startInnerThread() {
Thread {
...
return@Thread
...
}.start()
}
但我想知道是否可以更改标签@Thread
代替其中之一。
是的,您可以通过标记要返回的函数来做到这一点,如下所示:
Thread {
Thread Foo@ {
return@Foo
}.start()
}.start()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)