Есть ли способ определить настраиваемое предупреждение в 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.