Aufruf ich den folgenden Code haben:in einer Schleife eine if-Anweisung, ohne es in jeder Iteration
public static void main(final String[] args) {
if (args.length == 0) {
System.out.println("Please provide a correct directory path as an argument!");
} else {
System.out.println("Thanks for using our CodeMetrics\n"
+ "The process Might take a long time, please wait!\n"
+ "Please check the CSV file for the final results!");
File ad = new File(args[0]);
File[] list = ad.listFiles();
for (File f : list) {
CodeMetrics codeMetrics = new CodeMetrics();
codeMetrics.parseCommandLine(f.toString());
codeMetrics.countComplexity(codeMetrics.sourceCodeFile);
// Count LOC (Lines of Code)
codeMetrics.countLines(codeMetrics.sourceCodeFile);
codeMetrics.countTestLines(codeMetrics.testFiles);
codeMetrics.printReport();
codeMetrics.writeReport();
}
}
}
jetzt würde Ich mag dem Anwender die opprtunity geben printReport()
Methode wählen welken anrufen oder anrufen printReport()
und writeReport()
zusammen. Das Problem ist, wenn ich eine if-Anweisung setzen, wird es innerhalb der Schleife für jede Schleife und der Benutzer muss für jede Iteration in der Schleife wählen. Die einzige Idee, dass ich sehen kann, ist auf verschiedene Methoden wie folgt umzusetzen:
public static void onlyPrint(final String args){
}
public static void printAndWrit (final String args){
}
und beide Methoden haben den gleichen Code, mit der Ausnahme, dass einer von ihnen wird Printreport haben() und der andere beide Methoden. Aber ich bin nicht wirklich zufrieden mit dieser Lösung, da ich glaube, dass sie viel Code redudancy haben wird! Gibt es eine bessere Lösung?
Dank
Eine andere Möglichkeit, dies zu formulieren, besteht darin, dem Benutzer die Möglichkeit zu geben, den Bericht zu schreiben oder den Bericht nicht zu schreiben. In beiden Fällen wird der Druck aufgerufen. –
Fragen Sie den Benutzer vor der Schleife, und verwenden Sie einen booleschen Wert für ob sie eine Methode oder beide wollen. Verwenden Sie diesen Wert dann in einer if-Anweisung in der Schleife. –