Я не уверен, что это то, чего вы пытаетесь достичь, но чтобы преобразовать объект Java в хэш ruby, вы можете сделать что-то вроде этого:
require 'java'
java_import 'YourJavaClass'
a = YourJavaClass.new
hash = {}
a.java_class.fields.each{ |var| hash[var.name] = var.value(a) }
p hash
Это предполагает, что переменные экземплярадоступны (public
).Если это не так, вам может потребоваться сделать их доступными с помощью чего-то вроде:
a.java_class.declared_fields.each{ |var| var.accessible = true; hash[var.name] = var.value(a) }
(обратите внимание, что на этот раз он использует declared_fields
)