/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Ideone app = new Ideone() ;
app.demo() ;
}
private void demo() {
Person p1 = new Person( "JJ" ) ;
Person p2 = new Person( "JJ" ) ;
System.
out.
println( p1.
equals( p2
) ); System.
out.
println( p1.
equals( p2
) ); }
class Person {
public Person
( String name
) { this.name = Objects.requireNonNull( name ) ;
}
@Override
public boolean equals
( Object o
) { System.
out.
println( "Running override, Object argument." ) ; Person otherPerson = ( Person ) o ;
boolean match = Objects.equals( this.name , otherPerson.name ) ;
return match ;
}
// Overload
public boolean equals( Person p ) {
System.
out.
println( "Running overload, Person argument." ) ; boolean match = Objects.equals( this.name , p.name ) ;
return match ;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewogICAgICAgIElkZW9uZSBhcHAgPSBuZXcgSWRlb25lKCkgOwogICAgICAgIGFwcC5kZW1vKCkgOwoJfQoKICAgIHByaXZhdGUgdm9pZCBkZW1vKCkgewogICAgICAgIFBlcnNvbiBwMSA9IG5ldyBQZXJzb24oICJKSiIgKSA7CiAgICAgICAgUGVyc29uIHAyID0gbmV3IFBlcnNvbiggIkpKIiApIDsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIHAxLmVxdWFscyggcDIgKSApOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggcDEuZXF1YWxzKCBwMiApICk7CiAgICB9CiAgICAKICAgIGNsYXNzIFBlcnNvbiB7CiAgICAgICAgcHVibGljIFN0cmluZyBuYW1lIDsKCiAgICAgICAgcHVibGljIFBlcnNvbiAoIFN0cmluZyBuYW1lICkgewogICAgICAgICAgICB0aGlzLm5hbWUgPSBPYmplY3RzLnJlcXVpcmVOb25OdWxsKCBuYW1lICkgOwogICAgICAgIH0KCiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKCBPYmplY3QgbyApIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiUnVubmluZyBvdmVycmlkZSwgT2JqZWN0IGFyZ3VtZW50LiIgKSA7CiAgICAgICAgICAgIFBlcnNvbiBvdGhlclBlcnNvbiA9ICggUGVyc29uICkgbyA7CiAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBPYmplY3RzLmVxdWFscyggdGhpcy5uYW1lICwgb3RoZXJQZXJzb24ubmFtZSApIDsKICAgICAgICAgICAgcmV0dXJuIG1hdGNoIDsKICAgICAgICB9CgogICAgICAgIC8vIE92ZXJsb2FkCiAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKCBQZXJzb24gcCApIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiUnVubmluZyBvdmVybG9hZCwgUGVyc29uIGFyZ3VtZW50LiIgKSA7CiAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBPYmplY3RzLmVxdWFscyggdGhpcy5uYW1lICwgcC5uYW1lICkgOwogICAgICAgICAgICByZXR1cm4gbWF0Y2ggOwogICAgICAgIH0KICAgIH0KCn0=