Как найти все случаи, когда возвращаемое значение функции не оценивается в Eclipse? - PullRequest
0 голосов
/ 17 мая 2019

Учитывая функцию, которая возвращает любой объект, например, String или null - как я могу легко найти все места в коде, где возвращаемое значение не присваивается переменной String (case1) или сразу оценивается как часть условия (case2)

, например

public String getMessageInLog(String toFind) {
    // return String or null, depending on if found
}

String lineInLog = getMessageInLog("test"); // case1
Assert.assertNotNull(getMessageInLog("test"); // case2
Assert.assertNotNull("Failure error message", getMessageInLog("test"); // case2 (extended example - why searching for " getMessageInLog(" does not work.
getMessageInLog("test") // case3 - what I'm trying to find

Этот тип вызова используется в тестах тысячи раз, и я хотел бы определить, где он используется, как в case3.

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Выполните поиск по регулярному выражению Eclipse, поиск по регулярному выражению и замените на

$\s+getMessageInLog
0 голосов
/ 17 мая 2019

Вы можете написать плагин Eclipse, который сможет

  1. найти ссылки на методы и классы с помощью SearchEngine .
  2. взаимодействует с компилятором Java с помощью JDT-плагина (Java Development Tooling) для создания AST для ссылок, которые вы нашли.
  3. Пройдите немного через AST, чтобы увидеть, как используются ссылки (если условие, правая часть присваивания или автономный оператор)
...