优化代码以获得更高的清晰度和效率

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,则不调用其他方法).

我需要调用每个方法.

Dur*_*dal 6

您没有指定如果每一个方法都有被调用,但似乎你想他们都称不管个人的结果.所以使用简单或运算符:| (不是短路或||).

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)