繁体   English   中英

为什么此布尔比较无法正常工作?

[英]Why is this boolean comparison not working correctly?

因此,我正在与Netty一起工作,并试图使一个简单的客户端通过TCP连接到服务器,但是却遇到了一个非常奇怪的异常问题。 我正在尝试连接,无论何时连接,客户端都会断开连接。 我调试了客户端,并遇到了这个奇怪的问题,您可以在图片中看到它。 如果在其上方的try / catch中将成功设置为true,则Netty包括在ClientBootstrap类中,它将关闭通道。 如您在调试变量中所见,变量成功设置为true,但是它通过上面的if语句获得,只有成功为false时,该变量才继续。 这有什么意义? 我已经调试了它,并且成功将if语句上方的成功设置为true,然后转到if语句之后。 如果有人有一个很好的解释。

如果在其上方的try / catch中将成功设置为true,则Netty包括在ClientBootstrap类中,它将关闭通道。

不,不是的。 这是因为取反( ! )。 如果布尔否定旁边的表达式为false ,则返回true ,反之亦然。

您声明:

if(!success)

现在,仅当程序到达try的最后一行时, success设置为true 如果不是这样,则意味着出了点问题-可能是渠道问题-现在您要关闭该有问题的渠道。 因此,它的作用与您想要的相反。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM