gpt4 book ai didi

java - 如何使用德摩根法java重构if语句

转载 作者:行者123 更新时间:2023-12-01 16:44:23 25 4
gpt4 key购买 nike

所以我有一个非常不可读的 if 语句,有人建议我看看德摩根定律并重构它,这样它会更干净和可读。我知道如何用简单而简短的语句来做到这一点,但我真的不知道如何重构我的代码。请注意,前两个是对象!感谢您的帮助!

if (!userTemplate.getFromAccount().equals(document.getDetails())
&& !userTemplate.getBenAccount().equals(document.getFromAccount())
&& !userTemplate.getDetails().equals(document.getBenAccount())
&& !userTemplate.getBenType().equals(document.getBenType())
&& !userTemplate.getAmount().equals(document.getCreditAmount()))

最佳答案

根据维基百科,德摩根定律可以简单地解释为

not (A or B) = not A and not B;

not (A and B) = not A or not B

所以你当前的if语句

if (!userTemplate.getFromAccount().equals(document.getDetails())
&& !userTemplate.getBenAccount().equals(document.getFromAccount())
&& !userTemplate.getDetails().equals(document.getBenAccount())
&& !userTemplate.getBenType().equals(document.getBenType())
&& !userTemplate.getAmount().equals(document.getCreditAmount()))

可以重构为

if (!(userTemplate.getFromAccount().equals(document.getDetails())
|| userTemplate.getBenAccount().equals(document.getFromAccount())
|| userTemplate.getDetails().equals(document.getBenAccount())
|| userTemplate.getBenType().equals(document.getBenType())
|| userTemplate.getAmount().equals(document.getCreditAmount())))

关于java - 如何使用德摩根法java重构if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55399463/

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