jython and toString

ivansh ishijak at gmail.com
Mon Oct 16 11:13:22 EDT 2006


Hello,

For one java class (Hello) i use another (HelloPrinter) to build the
string representation of the first one. When i've tried to use this
from within jython,  HelloPrinter.toString(hello) call gives results
like Object.toString() of hello has being called. The example below
shows this behaviour.
Could somebody explain this?


// Hello.java
package jythontest;
public class Hello {
	private String name;
	public Hello(String name)
	{
		this.name = name;
	}
	public String sayHello()
	{
		return "Hello, "+name;
	}
}

// HelloPrinter.java
package jythontest;
public class HelloPrinter {
	public static String toString(Hello h)
	{
		return h.sayHello();
	}

	public static String toMyString(Hello h)
	{
		return h.sayHello();
	}
}



#  calljava.py
from jythontest import *
h = Hello("theName")
print h
print HelloPrinter.toString(h)
print HelloPrinter.toMyString(h)

OUTPUT:
jythontest.Hello at 523ca2   // GOOD
jythontest.Hello at 523ca2   // WRONG
Hello, theName                 // GOOD


Jython 2.1 on java (JIT: null)

java version "1.5.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
Java HotSpot(TM) Server VM (build 1.5.0_03-b07, mixed mode)




More information about the Python-list mailing list