From: Andree J. <an...@cs...> - 2007-11-19 17:28:52
Attachments:
signature.asc
|
Hi All, Apologies of this question has already been asked, but my searches have come up empty. I'm trying to pass a two dimensional list to a Java object using the jarray.array function, but can't seem to get it right, any help would be greatly appreciated. So, I have a Java interface, called Logic that looks like this: public interface Logic { public void doSomething ( ); public void printArr ( int[][] arr ); public int[][] getArr (); } my jython object tries to implement this interface: import Logic from jarray import array from org.python.core import PyList class LI(Logic): def __init__(self): self.someVar =3D 15; def doSomething(self): print "someVar: " + str(self.someVar) # Function passed a java array. This works fine def printArr ( self, arr ): print "Passed from java: " print arr # Reconstruct the java array as a jython list of lists self.ary =3D [] for i in range (0, len(arr)): self.ary.append([]) for j in range ( 0, len(arr[i]) ): self.ary[i].append(arr[i][j]) print "Reconstructed in python: " print self.ary # Trying to return a jarray version of the jython list of lists # This is where I'm running in to problems def getArr ( self ): return array ( self.ary, PyList ) if __name__ =3D=3D '__main__': li =3D LI() gui =3D GUI(li) The output of running this program with a backing java GUI that creates a two dimensional int array and passes it to the printArr function, looks like this. After being printed, the GUI tries to call getArr function to get the function back, but this is where I run in to problems= =2E someVar: 15 Passed from java: array([I,[array('i',[1, 2, 3, 4, 5, 6, 10]) , array('i',[2, 4, 5, 6]) , array('i',[4, 3, 2, 1]) ]) Reconstructed in python: [[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]] Exception in thread "AWT-EventQueue-0" Traceback (innermost last): (no code object) at line 0 TypeError: can't convert array(org.python.core.PyList,[[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]]) to [[I I guess what I don't really see is how I can create this [[I type that's indicated. I've tried numerous combinations using the array function, but I'm having problems getting it to work. Any suggestions would be greatly appreciated. Using the Numeric library is not an option. Many thanks, Andree |
From: Jeff E. <jem...@fr...> - 2007-11-19 19:29:12
|
>>> import java >>> import jarray >>> alist = [[1,2,3],[4,5]] >>> >>> >>> a = jarray.array(alist,java.lang.Class.forName("[I")) >>> a array([array([1, 2, 3], int), array([4, 5], int)], [I) >>> Andree Jacobson wrote: > Hi All, > > Apologies of this question has already been asked, but my searches > have come up empty. I'm trying to pass a two dimensional list to a Java > object using the jarray.array function, but can't seem to get it right, > any help would be greatly appreciated. > > So, I have a Java interface, called Logic that looks like this: > > public interface Logic { > public void doSomething ( ); > public void printArr ( int[][] arr ); > public int[][] getArr (); > } > > my jython object tries to implement this interface: > > import Logic > from jarray import array > from org.python.core import PyList > > class LI(Logic): > def __init__(self): > self.someVar = 15; > > def doSomething(self): > print "someVar: " + str(self.someVar) > > # Function passed a java array. This works fine > def printArr ( self, arr ): > print "Passed from java: " > print arr > > # Reconstruct the java array as a jython list of lists > self.ary = [] > for i in range (0, len(arr)): > self.ary.append([]) > for j in range ( 0, len(arr[i]) ): > self.ary[i].append(arr[i][j]) > print "Reconstructed in python: " > print self.ary > > # Trying to return a jarray version of the jython list of lists > # This is where I'm running in to problems > def getArr ( self ): > return array ( self.ary, PyList ) > > if __name__ == '__main__': > li = LI() > gui = GUI(li) > > The output of running this program with a backing java GUI that creates > a two dimensional int array and passes it to the printArr function, > looks like this. After being printed, the GUI tries to call getArr > function to get the function back, but this is where I run in to problems. > > someVar: 15 > Passed from java: > array([I,[array('i',[1, 2, 3, 4, 5, 6, 10]) , array('i',[2, 4, 5, 6]) , > array('i',[4, 3, 2, 1]) ]) > Reconstructed in python: > [[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]] > Exception in thread "AWT-EventQueue-0" Traceback (innermost last): > (no code object) at line 0 > TypeError: can't convert array(org.python.core.PyList,[[1, 2, 3, 4, 5, > 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]]) to [[I > > I guess what I don't really see is how I can create this [[I type that's > indicated. I've tried numerous combinations using the array function, > but I'm having problems getting it to work. Any suggestions would be > greatly appreciated. Using the Numeric library is not an option. > > Many thanks, > > Andree > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Simon G. <sga...@cs...> - 2007-11-19 20:59:40
|
You've got a = jarray.array(alist,java.lang.Class.forName("[I")) What is "[I" ?? That may be where your problem is, is this a java class? If it is a valid class name, then you need to write a function to convert it to/from a PyList Jeff Emanuel wrote: > >>> import java > >>> import jarray > >>> alist = [[1,2,3],[4,5]] > >>> > >>> > >>> a = jarray.array(alist,java.lang.Class.forName("[I")) > >>> a > array([array([1, 2, 3], int), array([4, 5], int)], [I) > >>> > > > Andree Jacobson wrote: >> Hi All, >> >> Apologies of this question has already been asked, but my searches >> have come up empty. I'm trying to pass a two dimensional list to a Java >> object using the jarray.array function, but can't seem to get it right, >> any help would be greatly appreciated. >> >> So, I have a Java interface, called Logic that looks like this: >> >> public interface Logic { >> public void doSomething ( ); >> public void printArr ( int[][] arr ); >> public int[][] getArr (); >> } >> >> my jython object tries to implement this interface: >> >> import Logic >> from jarray import array >> from org.python.core import PyList >> >> class LI(Logic): >> def __init__(self): >> self.someVar = 15; >> >> def doSomething(self): >> print "someVar: " + str(self.someVar) >> >> # Function passed a java array. This works fine >> def printArr ( self, arr ): >> print "Passed from java: " >> print arr >> >> # Reconstruct the java array as a jython list of lists >> self.ary = [] >> for i in range (0, len(arr)): >> self.ary.append([]) >> for j in range ( 0, len(arr[i]) ): >> self.ary[i].append(arr[i][j]) >> print "Reconstructed in python: " >> print self.ary >> >> # Trying to return a jarray version of the jython list of lists >> # This is where I'm running in to problems >> def getArr ( self ): >> return array ( self.ary, PyList ) >> >> if __name__ == '__main__': >> li = LI() >> gui = GUI(li) >> >> The output of running this program with a backing java GUI that creates >> a two dimensional int array and passes it to the printArr function, >> looks like this. After being printed, the GUI tries to call getArr >> function to get the function back, but this is where I run in to problems. >> >> someVar: 15 >> Passed from java: >> array([I,[array('i',[1, 2, 3, 4, 5, 6, 10]) , array('i',[2, 4, 5, 6]) , >> array('i',[4, 3, 2, 1]) ]) >> Reconstructed in python: >> [[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]] >> Exception in thread "AWT-EventQueue-0" Traceback (innermost last): >> (no code object) at line 0 >> TypeError: can't convert array(org.python.core.PyList,[[1, 2, 3, 4, 5, >> 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]]) to [[I >> >> I guess what I don't really see is how I can create this [[I type that's >> indicated. I've tried numerous combinations using the array function, >> but I'm having problems getting it to work. Any suggestions would be >> greatly appreciated. Using the Numeric library is not an option. >> >> Many thanks, >> >> Andree >> >> >> >> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Jeff E. <jem...@fr...> - 2007-11-19 21:21:47
|
"[I" is the name of the Java class for an array of ints. There is no problem with "[I". The code I posted works to answer the OP's question. Simon Galbraith wrote: > You've got > > a = jarray.array(alist,java.lang.Class.forName("[I")) > > What is "[I" ?? That may be where your problem is, is this a java class? > If it is a valid class name, then you need to write a function > to convert it to/from a PyList > > > Jeff Emanuel wrote: >> >>> import java >> >>> import jarray >> >>> alist = [[1,2,3],[4,5]] >> >>> >> >>> >> >>> a = jarray.array(alist,java.lang.Class.forName("[I")) >> >>> a >> array([array([1, 2, 3], int), array([4, 5], int)], [I) >> >>> >> >> >> Andree Jacobson wrote: >>> Hi All, >>> >>> Apologies of this question has already been asked, but my searches >>> have come up empty. I'm trying to pass a two dimensional list to a Java >>> object using the jarray.array function, but can't seem to get it right, >>> any help would be greatly appreciated. >>> >>> So, I have a Java interface, called Logic that looks like this: >>> >>> public interface Logic { >>> public void doSomething ( ); >>> public void printArr ( int[][] arr ); >>> public int[][] getArr (); >>> } >>> >>> my jython object tries to implement this interface: >>> >>> import Logic >>> from jarray import array >>> from org.python.core import PyList >>> >>> class LI(Logic): >>> def __init__(self): >>> self.someVar = 15; >>> >>> def doSomething(self): >>> print "someVar: " + str(self.someVar) >>> >>> # Function passed a java array. This works fine >>> def printArr ( self, arr ): >>> print "Passed from java: " >>> print arr >>> >>> # Reconstruct the java array as a jython list of lists >>> self.ary = [] >>> for i in range (0, len(arr)): >>> self.ary.append([]) >>> for j in range ( 0, len(arr[i]) ): >>> self.ary[i].append(arr[i][j]) >>> print "Reconstructed in python: " >>> print self.ary >>> >>> # Trying to return a jarray version of the jython list of lists >>> # This is where I'm running in to problems >>> def getArr ( self ): >>> return array ( self.ary, PyList ) >>> >>> if __name__ == '__main__': >>> li = LI() >>> gui = GUI(li) >>> >>> The output of running this program with a backing java GUI that creates >>> a two dimensional int array and passes it to the printArr function, >>> looks like this. After being printed, the GUI tries to call getArr >>> function to get the function back, but this is where I run in to problems. >>> >>> someVar: 15 >>> Passed from java: >>> array([I,[array('i',[1, 2, 3, 4, 5, 6, 10]) , array('i',[2, 4, 5, 6]) , >>> array('i',[4, 3, 2, 1]) ]) >>> Reconstructed in python: >>> [[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]] >>> Exception in thread "AWT-EventQueue-0" Traceback (innermost last): >>> (no code object) at line 0 >>> TypeError: can't convert array(org.python.core.PyList,[[1, 2, 3, 4, 5, >>> 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]]) to [[I >>> >>> I guess what I don't really see is how I can create this [[I type that's >>> indicated. I've tried numerous combinations using the array function, >>> but I'm having problems getting it to work. Any suggestions would be >>> greatly appreciated. Using the Numeric library is not an option. >>> >>> Many thanks, >>> >>> Andree >>> >>> >>> >>> ------------------------------------------------------------------------ >>> >>> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Jython-users mailing list >>> Jyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/jython-users >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users >> > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Andree J. <an...@cs...> - 2007-11-20 00:03:46
Attachments:
signature.asc
|
Yes, Jeff is right, it worked great. Reflection is a wonderful thing, sometimes. /Andree Jeff Emanuel wrote: > "[I" is the name of the Java class for an array of ints. > There is no problem with "[I". The code I posted > works to answer the OP's question. >=20 >=20 > Simon Galbraith wrote: >> You've got >> >> a =3D jarray.array(alist,java.lang.Class.forName("[I")) >> >> What is "[I" ?? That may be where your problem is, is this a java clas= s? >> If it is a valid class name, then you need to write a function >> to convert it to/from a PyList >> >> >> Jeff Emanuel wrote: >>> >>> import java >>> >>> import jarray >>> >>> alist =3D [[1,2,3],[4,5]] >>> >>> >>> >>> >>> >>> a =3D jarray.array(alist,java.lang.Class.forName("[I")) >>> >>> a >>> array([array([1, 2, 3], int), array([4, 5], int)], [I) >>> >>> >>> >>> >>> Andree Jacobson wrote: >>>> Hi All, >>>> >>>> Apologies of this question has already been asked, but my searches= >>>> have come up empty. I'm trying to pass a two dimensional list to a J= ava >>>> object using the jarray.array function, but can't seem to get it rig= ht, >>>> any help would be greatly appreciated. >>>> >>>> So, I have a Java interface, called Logic that looks like this: >>>> >>>> public interface Logic { >>>> public void doSomething ( ); >>>> public void printArr ( int[][] arr ); >>>> public int[][] getArr (); >>>> } >>>> >>>> my jython object tries to implement this interface: >>>> >>>> import Logic >>>> from jarray import array >>>> from org.python.core import PyList >>>> >>>> class LI(Logic): >>>> def __init__(self): >>>> self.someVar =3D 15; >>>> >>>> def doSomething(self): >>>> print "someVar: " + str(self.someVar) >>>> >>>> # Function passed a java array. This works fine >>>> def printArr ( self, arr ): >>>> print "Passed from java: " >>>> print arr >>>> >>>> # Reconstruct the java array as a jython list of lists >>>> self.ary =3D [] >>>> for i in range (0, len(arr)): >>>> self.ary.append([]) >>>> for j in range ( 0, len(arr[i]) ): >>>> self.ary[i].append(arr[i][j]) >>>> print "Reconstructed in python: " >>>> print self.ary >>>> >>>> # Trying to return a jarray version of the jython list of lists >>>> # This is where I'm running in to problems >>>> def getArr ( self ): >>>> return array ( self.ary, PyList ) >>>> >>>> if __name__ =3D=3D '__main__': >>>> li =3D LI() >>>> gui =3D GUI(li) >>>> >>>> The output of running this program with a backing java GUI that crea= tes >>>> a two dimensional int array and passes it to the printArr function, >>>> looks like this. After being printed, the GUI tries to call getArr >>>> function to get the function back, but this is where I run in to pro= blems. >>>> >>>> someVar: 15 >>>> Passed from java: >>>> array([I,[array('i',[1, 2, 3, 4, 5, 6, 10]) , array('i',[2, 4, 5, 6]= ) , >>>> array('i',[4, 3, 2, 1]) ]) >>>> Reconstructed in python: >>>> [[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]] >>>> Exception in thread "AWT-EventQueue-0" Traceback (innermost last): >>>> (no code object) at line 0 >>>> TypeError: can't convert array(org.python.core.PyList,[[1, 2, 3, 4, = 5, >>>> 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]]) to [[I >>>> >>>> I guess what I don't really see is how I can create this [[I type th= at's >>>> indicated. I've tried numerous combinations using the array function= , >>>> but I'm having problems getting it to work. Any suggestions would be= >>>> greatly appreciated. Using the Numeric library is not an option. >>>> >>>> Many thanks, >>>> >>>> Andree >>>> >>>> >>>> >>>> --------------------------------------------------------------------= ---- >>>> >>>> --------------------------------------------------------------------= ----- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> >>>> >>>> --------------------------------------------------------------------= ---- >>>> >>>> _______________________________________________ >>>> Jython-users mailing list >>>> Jyt...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jython-users >>> ---------------------------------------------------------------------= ---- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> Jython-users mailing list >>> Jyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/jython-users >>> >> >> ----------------------------------------------------------------------= --- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users >=20 > -----------------------------------------------------------------------= -- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users >=20 |
From: Simon G. <sga...@cs...> - 2007-11-20 00:19:35
|
Ah.. sorry I had missed that the fact that it was his response to your question.. I thought Jason's email was the original question! But I learned something! cheers, Simon Andree Jacobson wrote: > Yes, Jeff is right, it worked great. Reflection is a wonderful thing, > sometimes. > > /Andree > > Jeff Emanuel wrote: >> "[I" is the name of the Java class for an array of ints. >> There is no problem with "[I". The code I posted >> works to answer the OP's question. >> >> >> Simon Galbraith wrote: >>> You've got >>> >>> a = jarray.array(alist,java.lang.Class.forName("[I")) >>> >>> What is "[I" ?? That may be where your problem is, is this a java class? >>> If it is a valid class name, then you need to write a function >>> to convert it to/from a PyList >>> >>> >>> Jeff Emanuel wrote: >>>> >>> import java >>>> >>> import jarray >>>> >>> alist = [[1,2,3],[4,5]] >>>> >>> >>>> >>> >>>> >>> a = jarray.array(alist,java.lang.Class.forName("[I")) >>>> >>> a >>>> array([array([1, 2, 3], int), array([4, 5], int)], [I) >>>> >>> >>>> >>>> >>>> Andree Jacobson wrote: >>>>> Hi All, >>>>> >>>>> Apologies of this question has already been asked, but my searches >>>>> have come up empty. I'm trying to pass a two dimensional list to a Java >>>>> object using the jarray.array function, but can't seem to get it right, >>>>> any help would be greatly appreciated. >>>>> >>>>> So, I have a Java interface, called Logic that looks like this: >>>>> >>>>> public interface Logic { >>>>> public void doSomething ( ); >>>>> public void printArr ( int[][] arr ); >>>>> public int[][] getArr (); >>>>> } >>>>> >>>>> my jython object tries to implement this interface: >>>>> >>>>> import Logic >>>>> from jarray import array >>>>> from org.python.core import PyList >>>>> >>>>> class LI(Logic): >>>>> def __init__(self): >>>>> self.someVar = 15; >>>>> >>>>> def doSomething(self): >>>>> print "someVar: " + str(self.someVar) >>>>> >>>>> # Function passed a java array. This works fine >>>>> def printArr ( self, arr ): >>>>> print "Passed from java: " >>>>> print arr >>>>> >>>>> # Reconstruct the java array as a jython list of lists >>>>> self.ary = [] >>>>> for i in range (0, len(arr)): >>>>> self.ary.append([]) >>>>> for j in range ( 0, len(arr[i]) ): >>>>> self.ary[i].append(arr[i][j]) >>>>> print "Reconstructed in python: " >>>>> print self.ary >>>>> >>>>> # Trying to return a jarray version of the jython list of lists >>>>> # This is where I'm running in to problems >>>>> def getArr ( self ): >>>>> return array ( self.ary, PyList ) >>>>> >>>>> if __name__ == '__main__': >>>>> li = LI() >>>>> gui = GUI(li) >>>>> >>>>> The output of running this program with a backing java GUI that creates >>>>> a two dimensional int array and passes it to the printArr function, >>>>> looks like this. After being printed, the GUI tries to call getArr >>>>> function to get the function back, but this is where I run in to problems. >>>>> >>>>> someVar: 15 >>>>> Passed from java: >>>>> array([I,[array('i',[1, 2, 3, 4, 5, 6, 10]) , array('i',[2, 4, 5, 6]) , >>>>> array('i',[4, 3, 2, 1]) ]) >>>>> Reconstructed in python: >>>>> [[1, 2, 3, 4, 5, 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]] >>>>> Exception in thread "AWT-EventQueue-0" Traceback (innermost last): >>>>> (no code object) at line 0 >>>>> TypeError: can't convert array(org.python.core.PyList,[[1, 2, 3, 4, 5, >>>>> 6, 10], [2, 4, 5, 6], [4, 3, 2, 1]]) to [[I >>>>> >>>>> I guess what I don't really see is how I can create this [[I type that's >>>>> indicated. I've tried numerous combinations using the array function, >>>>> but I'm having problems getting it to work. Any suggestions would be >>>>> greatly appreciated. Using the Numeric library is not an option. >>>>> >>>>> Many thanks, >>>>> >>>>> Andree >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> ------------------------------------------------------------------------- >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> >>>>> >>>>> ------------------------------------------------------------------------ >>>>> >>>>> _______________________________________________ >>>>> Jython-users mailing list >>>>> Jyt...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/jython-users >>>> ------------------------------------------------------------------------- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> Jython-users mailing list >>>> Jyt...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jython-users >>>> >>> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2005. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> Jython-users mailing list >>> Jyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/jython-users >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2005. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users >> > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: David H. <dav...@gm...> - 2007-11-20 15:54:49
|
On Nov 19, 2007 3:21 PM, Jeff Emanuel <jem...@fr...> wrote: > "[I" is the name of the Java class for an array of ints. > There is no problem with "[I". The code I posted > works to answer the OP's question. > Do you know if it can be done with classes? This was my best attempt: >>> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], '[Ljava.lang.String;') Traceback (innermost last): File "<console>", line 1, in ? TypeError: array(): 2nd arg can't be coerced to char or java.lang.Class -David |
From: Jeff E. <jem...@fr...> - 2007-11-20 16:33:55
|
It's even easier for classes: jarray.array([ ['hi', 'there'], ['silly', 'person'] ], java.lang.String) David Huebel wrote: > On Nov 19, 2007 3:21 PM, Jeff Emanuel <jem...@fr...> wrote: >> "[I" is the name of the Java class for an array of ints. >> There is no problem with "[I". The code I posted >> works to answer the OP's question. >> > > Do you know if it can be done with classes? This was my best attempt: > >>>> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], > '[Ljava.lang.String;') > Traceback (innermost last): > File "<console>", line 1, in ? > TypeError: array(): 2nd arg can't be coerced to char or java.lang.Class > > -David |
From: David H. <dav...@gm...> - 2007-11-20 16:03:47
|
On Nov 20, 2007 9:54 AM, David Huebel <dav...@gm...> wrote: > > Do you know if it can be done with classes? This was my best attempt: > > >>> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], > '[Ljava.lang.String;') > Traceback (innermost last): > File "<console>", line 1, in ? > TypeError: array(): 2nd arg can't be coerced to char or java.lang.Class > > -David > Disregard. Someone over my shoulder pointed out it actually works when you do it right: >>> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], Class.forName('[Ljava.lang.String;')) array([Ljava.lang.String;,[array(java.lang.String,['hi', 'there']) , array(java.lang.String,['silly', 'person']) ]) But a question: Is this an implementation-specific class name? I found the place where the language spec mentions '[I' but can't find any official reference for other array class names. -David |
From: Jeff E. <jem...@fr...> - 2007-11-20 16:32:37
|
David Huebel wrote: > But a question: Is this an implementation-specific class name? I > found the place where the language spec mentions '[I' but can't find > any official reference for other array class names. > From the language spec, 3rd edition: Every array also has a class; the method getClass, when invoked for an array object, will return a class object (of class Class) that represents the class of the array. The classes for arrays have strange names that are not valid identifiers; for example, the class for an array of int components has the name "[I" and so the value of the expression: new int[10].getClass().getName() is the string "[I"; see the specification of Class.getName for details. From API spec for Class.getName: If this class object represents a class of arrays, then the internal form of the name consists of the name of the element type preceded by one or more '[' characters representing the depth of the array nesting. The encoding of element type names is as follows: Element Type Encoding boolean Z byte B char C class or interface Lclassname; double D float F int I long J short S The class or interface name classname is the binary name of the class specified above. |
From: David H. <dav...@gm...> - 2007-11-20 20:36:14
|
On Nov 20, 2007 10:33 AM, Jeff Emanuel <jem...@fr...> wrote: > It's even easier for classes: > > jarray.array([ ['hi', 'there'], ['silly', 'person'] ], java.lang.String) > That doesn't work for me (Jython 2.2): >>> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], String) Traceback (innermost last): File "<console>", line 1, in ? TypeError: can't convert ['hi', 'there'] to java.lang.String Thanks for the Javadoc pointer. I added a multidimensional array example to the New User's Guide. -David |
From: Jeff E. <jem...@fr...> - 2007-11-20 21:32:24
|
Sorry, my mistake. That only works for 1D arrays. David Huebel wrote: > On Nov 20, 2007 10:33 AM, Jeff Emanuel <jem...@fr...> wrote: >> It's even easier for classes: >> >> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], java.lang.String) >> > > That doesn't work for me (Jython 2.2): > >>>> jarray.array([ ['hi', 'there'], ['silly', 'person'] ], String) > Traceback (innermost last): > File "<console>", line 1, in ? > TypeError: can't convert ['hi', 'there'] to java.lang.String > > Thanks for the Javadoc pointer. I added a multidimensional array > example to the New User's Guide. > > -David > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |