我有以下代码用于记录我使用我的工具在cmd中运行的每个命令后的所有错误。 (它运行p4 integrate
个命令,大约1000-1500 /任务)
if (errorArrayList.size() > 0) {
LoggerSingleton.I.writeDebugInfoTimeStampedLog("[INFO-CMD] CommandExecuter.java -> runAndGetResults: errors happened while running the following command: [ " + commandResultBean.getCommand() + " ]");
for (int i = 0; i < errorArrayList.size(); i++) {
LoggerSingleton.I.writeDebugErrorTimeStampedLog(errorArrayList.get(i));
commandResultBean.addToCLI_Error(errorArrayList.get(i));
}
LoggerSingleton.I.writeDebugInfoTimeStampedLog("[INFO-CMD] CommandExecuter.java -> runAndGetResults: Listing errors of command [" + commandResultBean.getCommand() + "] finished");
}
我现在正在处理的功能是检查我得到的错误,以及是否在预定义的错误列表上(错误列表并不重要,事实上并非如此)真正的错误,例如&#34;所有已经整合的修订版&#34; )什么都不做,但是当它真正的&#34;真实的&#34;错误,也将它写入其他日志文件(因为这些调试日志对于该工具的用户来说太长了,它更有可能为开发人员制作)。
问题是,最好的方法是什么?
目前我还不知道要使用哪种类型(2-3个单String
,List
,Array
...)。我应该使用什么类型的?我以前从未在Java中使用过enum
,在这个应该是吗?
我猜方法中的for
或foreach
和errorArrayList.get(i).contains(<myVariable>)
是检查的唯一选项。
如果我错了,有更好的方法吗?
修改
如果我有一个名为ArrayList<String>
的{{1}}带有无关错误(只能定义其中的一部分),我使用下面的代码会比上面写的方法更好的表现吗?另外,如果我只有String的一部分,我可以使用它吗?怎么样?
knownErrors
答案 0 :(得分:1)
ArrayList本身有一个方法removeAll(Collection c),它删除所有与输入集合元素匹配的元素。程序下面显示它显然。因此,如果您在arraylist中跳过已知错误并将其传递给removeall方法,则会删除已知错误并且errorArrayList将只有新错误。