How to implement Box.equals

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Aug 14 14:33:13 UTC 2015


Peter Levart posted quite an interesting approach while back:

http://cr.openjdk.java.net/~plevart/misc/valhala-hacks/javany-webrev.01/src/java.base/share/classes/java/util/Any.java.html

Maurizio

On 14/08/15 15:15, Boaz Nahum wrote:
> How can one implement something simple as Box.eqauls
>
> I tried:
>
> public class PSupport {
>      static boolean equals(boolean x, boolean y) { return x == y;}
>      static boolean equals(int x, byte y) { return x == y;}
>      static boolean equals(char x, char y) { return x == y;}
>      static boolean equals(short x, short y) { return x == y;}
>      static boolean equals(int x, int y) { return x == y;}
>      static boolean equals(long x, long y) { return x == y;}
>      static boolean equals(float x, float y) { return x == y;}
>      static boolean equals(double x, double y) { return x == y;}
>      static boolean equals(Object x, Object y) { return Objects.equals(x, y); }
>
> }
>
>
> public class Box<any X> {
>
>      private final X x;
>
>      public Box(X x) { this.x = x;}
>
>      @Override
>      public boolean equals(Object o) {
>          if (this == o) return true;
>          if (o == null || getClass() != o.getClass()) return false;
>
>          Box<X> box = (Box<X>) o;
>
>          return PSupport.equals(x, box.x);
>      }
>
> }
>
> But it doesn't accept PSupport.equals(x, box.x);
>
> Thx
>
> Boaz



More information about the valhalla-dev mailing list