From: Alan L. <al...@li...> - 2001-07-18 17:36:06
|
I apologize ahead of time if this is an RTFM thing (or I'm just dumb) but .... I'm given some Java classes (sadly not in source) . Lets say I have class J and I subclass it in Jython: class P(J): ........... amongst the Java is a class that has getter and setter classes of type J: public class J2 { .. public J getJ() { } public void setJ(J j) { } } Now, of course, in Java I can setJ(p) and cast: (P)getJ() to get a P back. In Jython however I always get a J back from getJ() and I would seem to have no way of 'casting' it up to my Python subclass. Am I missing something purely obvious here ?? Thanks for JYthon -- as a long-time Python fan I am in hog heaven with this stuff .. Alan |
From: D-Man <ds...@ri...> - 2001-07-18 18:40:11
|
On Wed, Jul 18, 2001 at 10:33:14AM -0700, Alan Littleford wrote: | Now, of course, in Java I can setJ(p) and cast: (P)getJ() to get a | P back. Yes, this ugly hack is required to work around the static type checking. | In Jython however I always get a J back from getJ() and I | would seem to have no way of 'casting' it up to my Python subclass. Jython uses dynamic typing just like CPython so if you really have something that is of type 'P' then it really is of type 'P' and you can simply use it. Casts are not needed becuase python/jython is smart enough to figure out the type on its own (at runtime, of course). HTH, -D |
From: Alan L. <al...@li...> - 2001-07-18 18:51:39
|
D-Man, thanks -- after I posted my message I realised I was suffering from a caffeine-inadequacy -- JYthon is, of course, doing _exactly_ the right thing and my brain was fogged. Makes you wonder: Should one think of Jython as a turbo/typeless-java Should one think of Jython as Python with escape hatches to Java Should one think of Jython as Jython and forget its origins I suspect some of my confusion (and some others I have seen on the mailing list) come from the Jython/Python/Java overlap. Thanks again Alanl -----Original Message----- From: jyt...@li... [mailto:jyt...@li...]On Behalf Of D-Man Sent: Wednesday, July 18, 2001 11:40 AM To: Jython-users Subject: Re: [Jython-users] Class casting .... On Wed, Jul 18, 2001 at 10:33:14AM -0700, Alan Littleford wrote: | Now, of course, in Java I can setJ(p) and cast: (P)getJ() to get a | P back. Yes, this ugly hack is required to work around the static type checking. | In Jython however I always get a J back from getJ() and I | would seem to have no way of 'casting' it up to my Python subclass. Jython uses dynamic typing just like CPython so if you really have something that is of type 'P' then it really is of type 'P' and you can simply use it. Casts are not needed becuase python/jython is smart enough to figure out the type on its own (at runtime, of course). HTH, -D _______________________________________________ Jython-users mailing list Jyt...@li... http://lists.sourceforge.net/lists/listinfo/jython-users |
From: D-Man <ds...@ri...> - 2001-07-18 20:35:00
|
On Wed, Jul 18, 2001 at 11:48:49AM -0700, Alan Littleford wrote: | D-Man, | | thanks -- after I posted my message I realised I was suffering from a | caffeine-inadequacy -- JYthon is, of course, doing _exactly_ the right thing | and my brain was fogged. Makes you wonder: :-). | I suspect some of my confusion (and some others I have seen on the | mailing list) come from the Jython/Python/Java overlap. Some of it is just habit -- once you do something several times (like casting, if you have been doing a bunch of Java work) you keep on trying to do it even though it isn't correct anymore (once you revert to Jython). It happens to me a lot when I am translating code from one to the other and I forget to make a change in a few places. -D |