Eclipse:自定义警告(Rhino String params)

时间:2011-04-20 19:56:04

标签: java eclipse warnings rhino

有没有办法在Eclipse中定义自定义警告?怎么样?

我的动机

我有大量通过Mozilla Rhino公开为JavaScript对象的类。我遇到过这样的几个错误:

public void jsFunction_foo(String bar) {
  if (bar != null) {
    ...
  } else {
    ...
  }
}

错误:jsFunction_中的字符串参数永远不会为空。如果JavaScript调用foo(null),则到达的参数为"null",而不是null。巨大的差异。

解决方案是将参数声明为Scriptable,然后将其转换为存在:

public void jsFunction_foo(Scriptable bar) {
  if (bar != null) {
    String barStr = convertToString(bar);
    ...
  } else {
    ...
  }
}

无论如何。我们在JavaScript中有50多个类。我不想手动完成这些操作,而是希望自动化这个过程。类似的东西:

if (function.name.indexOf("jsFunction_") == 0 &&
    function.paramTypes.contains(String.class) &&
    stringParamComparedToNull(function))
  addWarning(function.lineNum, "It doesn't work like that!");

理想情况下,这个自定义警告会在我的团队中共享(甚至与Mozilla Rhino项目本身共享),因此其他人不会犯同样的错误。

对于那些与“null”相比较的人而言,让Eclipse崩溃的方法也会很好。 GRR。

1 个答案:

答案 0 :(得分:2)

您可以使用PMD在Java代码上定义custom rule using variant of XPath。 PMD也有Eclipse plugin