2013-05-03 2 views
2

Я пишу небольшую программу, которая модифицирует метод во время выполнения скрипта. Я видел, что в скрипке есть метод под названием getSource (определенный в классе CompiledMethod), который возвращает исходный код скомпилированного метода.Squeak: получение исходного кода метода во время выполнения

Как получить исходный код метода, если мой ввод является символом, соответствующим методу?

ответ

3

Вы должны знать, класс, в котором определен метод, то вы можете получить доступ к CompiledMethod через, например,

theClass >> methodSelectorSymbol 

или

theClass compiledMethodAt: methodSelectorSymbol 

с theClass быть класс с методом и methodSelectorSymbol - это символ, соответствующий методу, т. Е. Ваш вход. Есть и другие подходы. Например,

theClass lookupSelector: methodSelectorSymbol 

не только поиск в theClass, но и в его суперкласса.

Однако все подходы требуют, чтобы вы дали класс в качестве отправной точки.

Смежные вопросы