HBv*_*Bv6 2 java optimization performance
这段代码工作正常,但我需要简化它以获得更清晰,并希望更高效:
int i = 0;
if (p.cap()) n++;
if (p.creditcard()) n++;
if (p.email()) n++;
[...]
if (p.price()) n++;
if (p.url()) n++;
if (p.zip()) n++;
if (n == 0) p.standard();
Run Code Online (Sandbox Code Playgroud)
正如代码所说,我需要调用多个方法(我不知道它们的有限数量).每一页 ()*方法返回一个布尔值,仅当返回的值为true时,n才会递增.如果n == 0(当调用EVERY方法返回false时会发生这种情况)那么我需要调用p.standard().
如何编写更清晰有效的代码?我尝试了或者条件,这样的事情:
if (!( p.cap() || p.email() || p.isbn() || p.number() || p.phone() ||
p.price() || p.time() || p.url() || p.zip() || p.creditcard()
)) {
p.standard();
}
Run Code Online (Sandbox Code Playgroud)
但显然它没有正常工作(例如:如果p.cap()返回true,则不调用其他方法).
我需要调用每个方法.
您没有指定如果每一个方法都有被调用,但似乎你想他们都称不管个人的结果.所以使用简单或运算符:| (不是短路或||).
if (!( p.cap() | p.email() | p.isbn() | p.number() | p.phone() |
p.price() | p.time() | p.url() | p.zip() | p.creditcard()
)) {
p.standard();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |