jython and toString


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)

jythontest.Hello@523ca2 // GOOD
jythontest.Hello@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)