From: Terry S. <te...@nm...> - 2004-08-12 00:25:56
|
Howdy, I'm having some trouble figuring out this problem after searching for a good chunk of the day on the web for some answers. Here goes. I have a Java class that I am importing for use in my Jython script. Simple enough. The Java class looks something like this (with all other gory details stripped): public class MyObject { public Object value; public Object value() { return value; } } Example usage: x = new MyObject() x.value = new ArrayList() (...ArrayList is just used as an example) Now, in my Jython script, I try to do the following: from abc_package import MyObject from xyz_package import UserProfile # Another Java class myObj = MyObject() uProfile = UserProfile() myObj.value = uProfile When the script is executed, I get the following error: TypeError: can't assign to this attribute in java instance: value After fiddling around with various print's and browsing through some documents, I finally understand (I think) what the problem is. Jython is recognizing the myObj.value as a method object instead of an instance attribute. I've been looking for ways to get around this, but after playing around with myObj's dictionary, it seems I can't have the 'value' recognized as a method object or instance attribute, depending on the context. What's worse is that I can't modify the MyObject code so I can rename, say, the value attribute. Anybody encounter this sort of problem before and manage to solve it within Jython? -Terry |