Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8272135

jshell: Method cannot use its overloaded version

XMLWordPrintable

    • b14
    • generic
    • generic

      A DESCRIPTION OF THE PROBLEM :
      Definition of overloaded methods is possible until the method call its overloaded version.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      jshell> void pr(int i, String s) {
         ...> System.out.println(s + i);
         ...> }
      | created method pr(int,String)

      jshell> void pr(String s, int i) {
         ...> System.out.println(s + i);
         ...> }
      | created method pr(String,int)

      jshell> void pr(String s, int i) {
         ...> pr(i, s);
         ...> }
      | Error:
      | incompatible types: int cannot be converted to java.lang.String
      | pr(i, s);
      | ^
      | update overwrote method pr(String,int)

      jshell>


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Interpret discovers that I call the yet defined version.
      ACTUAL -
      Interpret is not able to call the existing version.

      ---------- BEGIN SOURCE ----------
      jshell> void pr(int i, String s) {
         ...> System.out.println(s + i);
         ...> }
      | created method pr(int,String)

      jshell> void pr(String s, int i) {
         ...> System.out.println(s + i);
         ...> }
      | created method pr(String,int)

      jshell> void pr(String s, int i) {
         ...> pr(i, s);
         ...> }
      | Error:
      | incompatible types: int cannot be converted to java.lang.String
      | pr(i, s);
      | ^
      | update overwrote method pr(String,int)

      jshell>

      ---------- END SOURCE ----------

      FREQUENCY : always


            jlahoda Jan Lahoda
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: