Può il modulo CheckStyle lavoro “NeedBraces” con nidificato if / else blocchi?
-
23-08-2019 - |
Domanda
Stiamo usando CheckStyle per far rispettare i nostri standard di stile. Una delle regole di stile che abbiamo scelto di includere è stato il NeedBraces modulo.
NeedBraces specifica che ogni tipo di blocco economico ( come if
, else
, for
) deve avere apertura parentesi graffe. Tuttavia, per quanto posso dire che non funziona del tutto correttamente.
In questo esempio attiverà un errore di CheckStyle.
if (true)
{
System.out.println("20");
}
else
System.out.println("30");
Perché il caso altro non ha parentesi graffe. Tuttavia, il prossimo esempio non riesce a innescare un errore di CheckStyle.
if (true)
{
System.out.println("20");
}
else
if (true)
{
System.out.println("30");
}
Questo dovrebbe hanno fallito a causa delle parentesi mancanti sul caso altro, ma checkstyle lascia passare. Dopo doppia verifica della documentazione, non riesco a trovare alcun motivo per cui questo non funziona correttamente.
Quindi ... Il lavoro può il modulo CheckStyle "NeedBraces" con nidificato if / else blocchi? Tutte le idee?
La risposta a questa domanda chiede un'altra domanda : c'è una regola per contrassegnare il codice indesiderabile sopra come una violazione
?Soluzione
Credo che sta facendo un'eccezione, perché, anche se in formato strano, quello che hai è un "else if". Non dovrebbe costringere a mettere le parentesi intorno al "se" in questo caso perché si finirebbe con" ... else {if {...}}
Il codice dovrebbe essere formattato:
if (true)
{
System.out.println("20");
}
else if (true)
{
System.out.println("30");
}
Altri suggerimenti
Nel tuo primo esempio, se si tenta di aggiungere un'altra dichiarazione sotto la altro blocco è necessario mettere tra parentesi graffe poi. D'altra parte, nel secondo esempio si aggiungerà l'istruzione all'interno del tutore. Credo che questo è il motivo per CheckStyle sta mostrando errore nel primo caso, perché il suo soggetto a errori. C'è una possibilità che si potrebbe endup aggiungendo dichiarazione senza bretelle green, quando si vuole veramente che, come parte di altro non al di fuori.