Google кешировал этот результат с 2006 года. Звучит разумно, но возьмите его и поэкспериментируйте!
(PS: я пользователь java + ruby, но никогда не использовал Rjb, поэтому просто передаю информацию ...)
http://webcache.googleusercontent.com/search?q=cache:1p7OdptgsYUJ:blog.voneicken.com/2006/12/3/accessing-inner-java-classes-via-rjb+inner+class+rjb+ruby+java&cd=10&hl=en&ct=clnk&gl=au
Я не удержался от исследования проблемы, с которой сталкивался Лес при доступе к статическим внутренностям, и я думаю, что нашел синтаксис. Доступ к внутренним классам (статическим или нет) может показаться немного странным, но это выполнимо. Статики загружаются как любой другой класс, но их путь к файлу - «OuterClass $ StaticInnerClass». Нестатические внутренние классы немного сложнее. Импортируйте как статический, с помощью OuterClass $ Inner; теперь у вас есть внутренний класс, но хитрость заключается в создании экземпляра экземпляра: вы должны предоставить экземпляр OuterClass в качестве первого аргумента для конструктора (таким образом, раскрывая немного за кулисами java неявный доступ к внутренним элементам к его внешним методам и данные):
Outer = Rjb::import(‘Outer’)
Inner = Rjb::import(‘Outer$Inner’)
StaticInner = Rjb::import(‘Outer$StaticInner’)
outer = Outer.new
inner = Inner.new(outer)
staticInner = StaticInner.new