首页 > 解决方案 > 如何仅捕获标记Eclipse JAVA中未警告的错误

问题描述

所以我正在开发一个eclipse插件

并且我只想在构建项目时捕获在问题视图中发现的错误。

这是我的代码

markers2 = resource2.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
                if (markers2 != null) {
                    for (IMarker m : markers2) {
                        System.out.println("Message: " + m.getAttribute(IMarker.MESSAGE));
                        System.out.println("Line Number: " + m.getAttribute(IMarker.LINE_NUMBER));

但是此代码也检测到发现的警告。如何将此限制为仅错误?

标签: javacompiler-errorseclipse-plugin

解决方案


问题标记的严重性属性告诉您它是错误、警告还是只是信息。

 IMarker marker = ....

 int sev = marker.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);

sev将是其中之一

  • IMarker.SEVERITY_ERROR
  • IMarker.SEVERITY_WARNING
  • IMarker.SEVERITY_INFO

所以

IMarker [] markers2 = resource2.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
if (markers2 != null) {
   for (IMarker m : markers2) {
     int sev = m.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
     if (sev == IMarker.SEVERITY_ERROR) {
        System.out.println("Message: " + m.getAttribute(IMarker.MESSAGE));
        System.out.println("Line Number: " + m.getAttribute(IMarker.LINE_NUMBER));
     }
   }
}

推荐阅读