From: Samuele P. <pe...@in...> - 2002-02-26 00:27:50
|
Maybe you should consider what is really happening and consider just to change your tests: >>> from java import util,lang >>> import Cont >>> c=Cont() >>> c.set("a") >>> c.get() 'a' >>> c.get().__class__ <jclass org.python.core.PyString at 387569> >>> c.check() a of java.lang.String >>> c.set(lang.String("a")) >>> c.get() 'a' >>> c.get().__class__ <jclass org.python.core.PyString at 387569> >>> c.check() a of java.lang.String [this behaviour is very unlikey to change] where Cont is: public class Cont { private Object obj; public void set(Object obj) { this.obj = obj; } public Object get() { return obj; } public void check() { System.out.println(obj + " of " + obj.getClass().getName()); } } So yes a java.lang.String becomes a PyString but also a PyString becomes a java.lang.String when Object is expected. regards, Samuele Pedroni. |
From: Delaney, T. <tde...@av...> - 2002-02-26 02:21:28
|
> From: Edward Povazan [mailto:epo...@te...] > > Thanks for the explanation. > I now understand that obj is a String on the java side, but a > PyString on > the jython side. > The reason I was asking is that I create my user interface widgets in > Jython, which includes many custom controls, and sometimes I > need to do > object.toString() which of course fails on a PyString. > So I need a wrapper around string objects ... a little > annoying. Oh well. If you are doing object.toString() in the Python code, you should instead use str(object). Tim Delaney |
From: Samuele P. <pe...@in...> - 2002-02-26 02:50:03
|
From: Delaney, Timothy <tde...@av...> > > From: Edward Povazan [mailto:epo...@te...] > > > > Thanks for the explanation. > > I now understand that obj is a String on the java side, but a > > PyString on > > the jython side. > > The reason I was asking is that I create my user interface widgets in > > Jython, which includes many custom controls, and sometimes I > > need to do > > object.toString() which of course fails on a PyString. > > So I need a wrapper around string objects ... a little > > annoying. Oh well. > > If you are doing object.toString() in the Python code, you should instead > use str(object). > True. I can only add that if you subclass a Java class from Jython then you should define both toString and __repr__/__str__, toString for java side and the other to make str work. regards, Samuele Pedroni. |
From: Edward P. <epo...@te...> - 2002-02-26 02:15:15
|
Thanks for the explanation. I now understand that obj is a String on the java side, but a PyString on the jython side. The reason I was asking is that I create my user interface widgets in Jython, which includes many custom controls, and sometimes I need to do object.toString() which of course fails on a PyString. So I need a wrapper around string objects ... a little annoying. Oh well. -Ed |