Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. IBM имеет старое (2004) инструмент структурного анализа , который делает некоторую визуализацию кода Java.
Netbeans UML делает достойное задание, перепроектирующее код также.
Maybe Ctrl + Alt + H in Eclipse / IntelliJ IDEA ? (albo present in NB somewhere) Or "data flow from/to" in IntelliJ IDEA?
В UML 2 есть две основные категории диаграмм: структурные диаграммы и диаграммы поведения. Каждая диаграмма UML принадлежит к одной из этих двух категорий диаграмм. Назначение структурных диаграмм - показать статическую структуру моделируемой системы. Они включают диаграммы классов, компонентов и / или объектов. Диаграммы поведения, с другой стороны, показывают динамическое поведение между объектами в системе, включая такие вещи, как их методы, взаимодействие и действия. Примеры диаграмм поведения - это диаграммы действий, вариантов использования и последовательности.
Здесь я понимаю, что OP запрашивает инструмент для визуализации потока кода (это заголовок вопроса), т.е. динамическое поведение. Идеальной диаграммой для этого была бы диаграмма последовательности.
Но, AFAIK, ни инструменты обратного проектирования UML, ни Doxygen не могут вычислить такие диаграммы из источников. Эти инструменты умеют создавать диаграммы структуры (например, диаграмму классов), но не диаграммы поведения (для этого потребуется выполнение). Таким образом, эти инструменты не отвечают на вопрос (даже для C ++).
ИМО, чтобы визуализировать поток кода, вам придется взглянуть на иерархию вызовов, как кто-то указал.
Мое избранное одним был креол . К сожалению, последнее обновление было сделано 10 августа 2007 г. ... но все же попробовать стоит.
Другой вариант,
Я тестировал это, и это ДОСТАТОЧНО для автоматической генерации диаграмм последовательности