Я не могу получить доступ к переменной экземпляра внешнего класса во внутреннем классе. Его простой качели приложение, которое я создаю с помощью JRuby:Доступ к частным членам внешнего класса во внутреннем классе: JRuby
class MainApp
def initialize
...
@textArea = Swing::JTextArea.new
@button = Swing::JButton.new
@button.addActionListener(ButtonListener.new)
...
end
class ButtonListener
def actionPerformed(e)
puts @textArea.getText #cant do this
end
end
end
Единственный способ решения проблемы я могу думать, это:
...
@button.addActionListener(ButtonListener.new(@textArea))
...
class ButtonListener
def initialize(control)
@swingcontrol = control
end
end
, а затем использовать @swingcontrol модули место @textArea в ' actionPerformed '.
Это возможно в java. Так почему же здесь нет? – badmaash
Потому что Ruby - это не Java. Правила обзора различны. – hallidave