gpt4 book ai didi

java - 返回容器的大小然后在finally block 中更改该容器是否安全?

转载 作者:行者123 更新时间:2023-11-30 06:09:18 25 4
gpt4 key购买 nike

我正在编写一个函数,该函数从容器中分离数据并返回分离的元素数量:

int detach(foo f)
{
try {
/*some code*/
return m_ids.size();
} finally {
m_ids.clear();
}
}

foo是一个接收m_ids中数据的对象,这是 java.util.List .

我担心:这段代码安全吗?它会返回m_ids的大小吗?在清除之前?

最佳答案

代码是安全的。返回值在到达 finally block 之前建立(并存储在某处)。一旦finally block 运行,存储的返回值将被发送到函数调用者。

请注意,如果您以糟糕的编码风格编写return m_ids.size();作为finally block 中的最后一个语句,那么0将是返回给调用者:finally block 中的 return 值会覆盖任何其他 return 值。

关于java - 返回容器的大小然后在finally block 中更改该容器是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38201365/

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