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
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