From: Jonathan E. <jon...@ca...> - 2002-09-26 23:04:05
|
I want to write a jython class that has a method that uses *args, and have this callable from java. But it looks like I can't just create the class and invoke it directly; javac doesn't like that. And setting the locals for PythonInterpreter.exec() would be more trouble than wrapping my args in an Object[] which is what I'm trying to avoid here. :( Am I missing anything? -Jonathan |
From: Ype K. <yk...@xs...> - 2002-09-27 18:05:10
|
Jonathan, On Friday 27 September 2002 01:03, you wrote: > I want to write a jython class that has a method that uses *args, and > have this callable from java. But it looks like I can't just create th= e > class and invoke it directly; javac doesn't like that.=20 Short answer: no. Long answer: To have a method called in a JVM, you'll need some way to tell JVM which method signatures are available for calling. When compiling a jython method code that uses *args, jythonc has no information available to generate methods implementing these signatures. AFAIK you can only give a single java signature for each jython method, using a @sig docstring for the jython method. It might be possible to extend jython's signature mechanism to give multi= ple signatures for one method, but in anycase you'll have to provide the signatures explicitly. Have fun, Ype |