gpt4 book ai didi

java - 这段代码是否存在额外的 NullPointerException 风险?

转载 作者:行者123 更新时间:2023-11-30 06:34:16 26 4
gpt4 key购买 nike

我有一个匿名类,在创建时需要使用自引用。我的业务代码可以简化为如下代码,我知道这段代码:

final Runnable runnable=new Runnable() {
@Override
public void run() {
if(Math.random()>0.5){
runnable.run();
}
}
};
runnable.run();

无法编译,因为在整个语句完成之前捕获了内部类中 runnable 的值。而且我不想使用静态或类属性来保持可运行状态,因为我不想在删除这部分时忘记删除不必要的变量。所以我修改成这样:

final Runnable[] runnable={null};
runnable[0]=new Runnable() {
@Override
public void run() {
if(Math.random()>0.5){
runnable[0].run();
}
}
};
runnable[0].run();

与像这样的普通对象创建相比,是否存在额外的 NullPointerException 风险:

Runnable runnable=new Runnable(){
@Override
public void run() {
}
};
runnable.run();

最佳答案

您 try catch 的行为几乎肯定应该使用 while 循环来完成。

关于java - 这段代码是否存在额外的 NullPointerException 风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45474672/

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