Getting return type of generated Closure at runtime

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Getting return type of generated Closure at runtime

Jan Lukavský
Hi,

I'm struggling with something I believe should be possible - when a
Closure is parsed at runtime, it should be possible to retrieve its
generic return type.

I have the following (in Java):

   @Test
   public void testClosureReturnTypeExtraction() {
     String script = "def a = { 1L }";
     Closure<?> closure = (Closure<?>) compile(script).run();
     Class<?> returnType = retrieveReturnTypeFrom(closure);        //
how to implement this??
     assertEquals(Long.class, returnType);
   }

What I cannot figure out is how to extract the type information from the
generated closure. I believe the type information should be there (or at
least it should be possible to put it there). So far, my best attempt
was, that I got that the type argument is "V". :-)

Any pointers would be appreciated.

Cheers,

  Jan