Как добавить переменную экземпляра с помощью Refactoring Browser?

Я хочу добавить переменную экземпляра программно в существующий класс с помощью Refactoring Browser:

| theClass className |
className := #MyClass.
theClass := (RBClass existingNamed: className)
                model: (RBNamespace new classNamed: className; yourself);
                yourself.
theClass addInstanceVariable: 'testIVar'

но класс не изменяется с новой переменной экземпляра, чего мне не хватает?

4 голоса | спросил user1000565 20 Maypm13 2013, 22:57:37

1 ответ


0

Вы забыли выполнить рефакторинг. Попробуйте это

| model className theClass iVarName |
className := #MyClass.
iVarName := 'testIVar'.
model := RBNamespace new classNamed: className; yourself.
theClass := (RBClass existingNamed: className)
                model: model;
                yourself.
(RBAddInstanceVariableRefactoring 
        model: model
        variable: iVarName
        class: theClass) execute.

вы можете добавить методы автоматического доступа (getter и setter) для новой переменной экземпляра

(RBCreateAccessorsForVariableRefactoring 
        model: model
        variable: iVarName
        class: theClass 
        classVariable: false) execute
ответил Hernán 20 Maypm13 2013, 23:25:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132