Ulf-<br><br>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.<br><br>-Neal<br><br><div class="gmail_quote">

On Tue, Oct 27, 2009 at 8:13 AM, Ulf Zibis <span dir="ltr"><<a href="mailto:Ulf.Zibis@gmx.de">Ulf.Zibis@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

It works fine too.<br>
Is coded:<div class="im"><br>
<br>
public class MyClass1 {<br>
   private final int value;<br>
<br>
   public MyClass1(int value) {<br>
       this.value = value;<br>
   }<br>
<br></div>
   public static int hashCode(Object key) {<br>
       return 3;<br>
   }<br>
<br>
//    public static int hashCode(MyClass1 obj) {<div class="im"><br>
//        return 3 * obj.value;<br>
//    }<br>
<br>
   public static void main(String... args) {<br>
       MyClass1 c = new MyClass1(99);<br>
       System.out.println(c.hashCode());<br>
       System.out.println(hashCode(c));<br>
       System.out.println(Object.hashCode(c)); // compile error if using official version of class Object<br>
   }<br>
}<br>
<br>
<br>
-Ulf<br>
<br>
<br></div>
Am 27.10.2009 15:53, Neal Gafter schrieb:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
Try adding<br>
<br>
  public static hashCode(Object key) {<br>
      return 3;<br>
  }<br>
<br>
to MyClass.  Such a class is broken by the proposed change.<br>
<br></div><div class="im">
On Tue, Oct 27, 2009 at 2:49 AM, Ulf Zibis <<a href="mailto:Ulf.Zibis@gmx.de" target="_blank">Ulf.Zibis@gmx.de</a> <mailto:<a href="mailto:Ulf.Zibis@gmx.de" target="_blank">Ulf.Zibis@gmx.de</a>>> wrote:<br>
<br>
    Correction:<br>
<br>
<br>
    public class MyClass1 {<br>
     private final int value;<br>
<br>
     public MyClass1(int value) {<br>
         this.value = value;<br>
     }<br>
<br>
     public static int hashCode(MyClass1 obj) {<br>
         return 3 * obj.value;<br>
     }<br>
<br>
     public static void main(String... args) {<br>
         MyClass1 c = new MyClass1(99);<br>
         System.out.println(c.hashCode());<br>
         System.out.println(hashCode(c));<br>
         System.out.println(Object.hashCode(c)); // compile error if<br>
    using official version of class Object<br>
     }<br>
    }<br>
<br>
<br>
    -Ulf<br>
<br>
<br>
<br>
</div></blockquote>
<br>
</blockquote></div><br>