Я реорганизую некоторый код Java, чтобы сделать его более разобщенным, изменив некоторые статические вызовы методов на нестатические вызовы, например:
// Before:
DAO.doSomething(dataSource, arg1, ..., argN)
// After:
dao.doSomething(arg1, ..., argN)
Моя проблема в том, что в большом проекте может быть трудно найти, где выполняются статические вызовы методов. Есть ли простой способ сделать это, из командной строки или в Eclipse?
Такой инструмент должен позволять мне игнорировать "доброкачественные" вызовы статических методов, подобные этим (либо не находя их в первую очередь, либо позволяя легко их удалять из результатов поиска):
String.valueOf(...)
Integer.parseInt(...)
MyClass.someBenignStaticMethod(...)
Некоторые уточнения:
- Меня не интересует поиск вызовов методов, выполненных с помощью отражения
- Я не знаю, какие статические методы в настоящее время существуют в этом проекте, поэтому это не так просто, как поиск их вызывающих абонентов с помощью команды Eclipse «Open Call Hierarchy» (Ctrl-Alt-H), хотя и простой способ поиска не приватные статические методы позволили бы мне использовать этот подход
- Мне также интересно находить вызовы статических методов, находящихся вне моего проекта, например, javax.mail.Transport # отправка
- Я ищу бесплатное (как в пиве) решение