Алгоритм для выполнения расчетов в RFC Java

RFC для Java-класс-это совокупность всех методов, которые могут быть вызваны в ответ на сообщение объекту класса или какой-либо метод в классе.RFC = R M, гдеМ = Количество методов в классе.R = Общее количество других методов непосредственно ссылаться от м.

Думать C .class и J .java файл, который нам нужен, чтобы вычислить RFC.

класс J{a(){}b(){}c(){e1.e();e1.f();e1.g();}h(){И.К();i.j();}m(){}n(){и.о();в / б();в / б();в / б();}}

здесь M=6и R=9 (Не волнуйтесь о звонке внутри цикла. Ее рассматривать в качестве одного вызова)

Расчета М легко. Загрузить C помощью загрузчика классов и использовать отражение, чтобы получить количество методов.

<р>Вычисление R не является прямой. Мы должны посчитать количество вызовов метода из класса. Первый уровень только.

Для вычисления R я должен использовать регулярное выражение. Обычно формат ( звонки с помощью. не учитываются)

[переменная].[method_name]([ноль или более параметров]);

или

[переменная].[method_name]([ноль или более параметров])

с точки с запятой, когда обратного вызова непосредственно становится параметр другой метод.или

[переменная].[method_name]([ноль или более параметров]).method2();

это становится два вызова метода

Что другого образца вызов метода может u думать? И нет иного пути, чем другие, используя Регулярное выражение, которое может быть использовано для вычисления р.


ОБНОВЛЕНИЕ:
@МакдауэллПохоже, с помощью BCEL я могу упростить весь процесс. Дайте я попробую.

Найдено 4 ответа:

Algorithm to perform RFC calculation in Java

http://stackoverflow.com/questions/19952/algorithm-to-perform-rfc-calculation-in-java

Посмотреть решение →