Neal, thanks for your patience.

Yes, these are the arguments I understand.

Thanks a lot,

-Ulf


Am 27.10.2009 17:36, Neal Gafter schrieb:
Ulf-

Very good. How what happens if you change the return type, or add a throws clause, or change its access modifier (JLS 8.4.8.3)? In all three cases it must be a compile-time error.

-Neal

On Tue, Oct 27, 2009 at 8:13 AM, Ulf Zibis <ulf.zi...@gmx.de <mailto:ulf.zi...@gmx.de>> wrote:

    It works fine too.
    Is coded:


    public class MyClass1 {
      private final int value;

      public MyClass1(int value) {
          this.value = value;
      }

      public static int hashCode(Object key) {
          return 3;
      }

    //    public static int hashCode(MyClass1 obj) {

    //        return 3 * obj.value;
    //    }

      public static void main(String... args) {
          MyClass1 c = new MyClass1(99);
          System.out.println(c.hashCode());
          System.out.println(hashCode(c));
          System.out.println(Object.hashCode(c)); // compile error if
    using official version of class Object
      }
    }


    -Ulf


    Am 27.10.2009 15:53, Neal Gafter schrieb:

        Try adding

         public static hashCode(Object key) {
             return 3;
         }

        to MyClass.  Such a class is broken by the proposed change.

        On Tue, Oct 27, 2009 at 2:49 AM, Ulf Zibis <ulf.zi...@gmx.de
        <mailto:ulf.zi...@gmx.de> <mailto:ulf.zi...@gmx.de
        <mailto:ulf.zi...@gmx.de>>> wrote:

           Correction:


           public class MyClass1 {
            private final int value;

            public MyClass1(int value) {
                this.value = value;
            }

            public static int hashCode(MyClass1 obj) {
                return 3 * obj.value;
            }

            public static void main(String... args) {
                MyClass1 c = new MyClass1(99);
                System.out.println(c.hashCode());
                System.out.println(hashCode(c));
                System.out.println(Object.hashCode(c)); // compile
        error if
           using official version of class Object
            }
           }


           -Ulf






Reply via email to