Skip to content

Instantly share code, notes, and snippets.

@headius
Created May 10, 2013 20:13
Show Gist options
  • Save headius/5557070 to your computer and use it in GitHub Desktop.
Save headius/5557070 to your computer and use it in GitHub Desktop.
ext-jruby-local ~/projects/jruby $ jirb
irb(main):001:0> obj = java.lang.Object.new
=> #<Java::JavaLang::Object:0x7f6673fa>
irb(main):002:0> obj.getClass
=> class java.lang.Object
irb(main):003:0> _.class
=> Java::JavaLang::Class
irb(main):004:0> jcls = java.lang.Object.java_class
=> class java.lang.Object
irb(main):005:0> jmethod = jcls.declared_method(:getClass)
=> #<Java::JavaMethod/getClass()>
irb(main):006:0> jmethod.invoke(obj)
=> class java.lang.Object
irb(main):007:0> _.class
=> Java::JavaClass
irb(main):008:0> ref_jmethod = JRuby.reference(jmethod)
=> #<Java::JavaMethod/getClass()>
irb(main):009:0> method = ref_jmethod.getValue
=> public final native java.lang.Class java.lang.Object.getClass()
irb(main):010:0> method.class
=> Java::JavaLangReflect::Method
irb(main):011:0> method.invoke(obj)
=> class java.lang.Object
irb(main):012:0> _.class
=> Java::JavaLang::Class
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment