Eclipse: пользовательские предупреждения (параметры строки Rhino) - PullRequest
1 голос
/ 20 апреля 2011

Есть ли способ определить настраиваемое предупреждение в Eclipse?Как?

Моя мотивация

У меня есть большое количество классов, которые отображаются как объекты JavaScript через Mozilla Rhino.Я столкнулся с парой ошибок, таких как:

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

Параметр Bug: A String в jsFunction_ никогда не будет пустым.Если JavaScript вызывает foo(null), получаемый параметр - "null", а не null.ОГРОМНАЯ разница.

Решение состоит в том, чтобы объявить параметр как Scriptable, а затем преобразовать его при его наличии:

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

Так или иначе.У нас есть более 50 классов, которые мы выставляем в JavaScript.Вместо того, чтобы просматривать все вручную, я хотел бы автоматизировать процесс.Примерно так:

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

В идеале это пользовательское предупреждение будет распространяться на всю мою команду (или даже на сам проект Mozilla Rhino), чтобы другие люди не повторяли ошибок.Способ сбить Eclipse для людей, которые сравнивают с «нулем», тоже подойдет.Grr.

1 Ответ

2 голосов
/ 21 апреля 2011

Вы можете использовать PMD для определения пользовательского правила , используя вариант XPath поверх кода Java.PMD также имеет Eclipse плагин .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...