From: Samuele P. <pe...@in...> - 2001-03-06 15:48:56
|
Hi. (This may be of general interest) [me on jython-dev answering to Janusch.Waclawczyk ] > Maybe we should provide better support for this (?). > > [ Janusch Waclawczyk] > > I wanted to create a new entry to a FAQ, but I failed: > > > > 3.8. How can I create 2-dimen. Java arrays from jython? > > The following works (not that intuitive): > >>> from java.lang import String,Object > >>> from jarray import array > >>> a=array(["a","b"],String) > >>> a > array(['a', 'b'], java.lang.String) > >>> # this is wrong: > >>> b=array([a,a],type(a)) # or a.__class__ > >>> b > array([array(['a', 'b'], java.lang.String), array(['a', 'b'], > java.lang.String)], org.python.core.PyArray) > >>> # this works ! > >>> b=array([a,a],Object.getClass(a)) > >>> b > array([array(['a', 'b'], java.lang.String), array(['a', 'b'], > java.lang.String)], [Ljava.lang.String;) > >>> > # [Ljava.lang.String; is the java internal name for (class) type > # java.lang.String[] > # b is a (jython side) java.lang.String[][] > I forgot to point out, that typically one does not need to work with java arrays on jython side, lists do the job: given: public class Wrap {} ----- public class Dummmy { public static void dummy(Wrap[][] a) {} } all this works: >>> import Dummy >>> Dummy.dummy([]) >>> Dummy.dummy([[]]) >>> a,b,c,d = [ Wrap() for i in range(0,4) ] >>> Dummy.dummy([[a,b]]) >>> Dummy.dummy([[a,b],[c,d]]) regards, Samuele Pedroni |