fork download
  1. import java.io.*;
  2. import java.lang.reflect.*;
  3. import java.util.*;
  4.  
  5. class Point {
  6. final double x, y;
  7.  
  8. public Point(double x, double y) {
  9. this.x = x;
  10. this.y = y;
  11. }
  12.  
  13. public double getX() {
  14. return this.x;
  15. }
  16.  
  17. public double getY() {
  18. return this.y;
  19. }
  20.  
  21. public boolean equals(Object o) {
  22. Point p = (Point)o;
  23. return this.x == p.getX() && this.y == p.getY();
  24. }
  25. }
  26.  
  27. public class Main {
  28. public static void main(String[] args) {
  29. Point p = new Point(1,2);
  30. Point q = new Point(1,2);
  31.  
  32. System.out.println(p == q);
  33. System.out.println(p.equals(q));
  34.  
  35. try {
  36. Field f = Field.class.getDeclaredField("modifiers");
  37. Field x = Point.class.getDeclaredField("x");
  38. Field y = Point.class.getDeclaredField("y");
  39.  
  40. f.setAccessible(true);
  41. x.setAccessible(true);
  42. y.setAccessible(true);
  43. f.setInt(x, x.getModifiers() & ~Modifier.FINAL);
  44. f.setInt(y, y.getModifiers() & ~Modifier.FINAL);
  45.  
  46. x.set(p, 0);
  47. y.set(p, 1);
  48. x.set(q, 2);
  49. y.set(q, 3);
  50. } catch (Exception e) {
  51. System.out.println("We are having some issues");
  52. return;
  53. }
  54.  
  55. System.out.println(p == q);
  56. System.out.println(p.equals(q));
  57. }
  58. }
Success #stdin #stdout 0.1s 27900KB
stdin
Standard input is empty
stdout
false
true
false
false