检查错误输出在我的错误列表中

时间:2014-12-18 09:50:48

标签: java variables enums

我有以下代码用于记录我使用我的工具在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;错误,也将它写入其他日志文件(因为这些调试日志对于该工具的用户来说太长了,它更有可能为开发人员制作)。

问题是,最好的方法是什么?

  • 我想避免大减速。我有很多命令,但错误的数量少于命令,但这并不罕见我得到700-800&#34;无关紧要&#34;一项任务中的错误。
  • 我将使用另一个类来制作I / O部分,如果我们抓住一个真实的&#34;那么延长运行时间就没有问题。错误。
  • 列表是常量,如果只能通过编码修改它就没关系。

目前我还不知道要使用哪种类型(2-3个单StringListArray ...)。我应该使用什么类型的?我以前从未在Java中使用过enum,在这个应该是吗?

我猜方法中的forforeacherrorArrayList.get(i).contains(<myVariable>)是检查的唯一选项。 如果我错了,有更好的方法吗?

修改

如果我有一个名为ArrayList<String>的{​​{1}}带有无关错误(只能定义其中的一部分),我使用下面的代码会比上面写的方法更好的表现吗?另外,如果我只有String的一部分,我可以使用它吗?怎么样?

knownErrors

1 个答案:

答案 0 :(得分:1)

ArrayList本身有一个方法removeAll(Collection c),它删除所有与输入集合元素匹配的元素。程序下面显示它显然。因此,如果您在arraylist中跳过已知错误并将其传递给removeall方法,则会删除已知错误并且errorArrayList将只有新错误。 enter image description here