Ein kleines Codebeispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Und eine kleine Frage dazu: Welche Methode wird aufgerufen?
Der Compiler beantwortet die Frage mit: „Keine Ahnung.“ bzw. genauer mit
error: reference to beliebigeMethode is ambiguous, both method beliebigeMethode(boolean,java.lang.Object…) in TestAnwendung and method beliebigeMethode(java.lang.Object,java.lang.Object…) in TestAnwendung match
Die nächste Frage die sich hier stellt ist: Warum? Beim Aufruf steht ein „true
“ also der atomare Typ boolean
und nicht der Objectwrapper Boolean.TRUE
. Warum meint der Compiler trotzdem die „Object“-Varainte der Methode könnte passen? Werden boolean
bei Methodenaufrufen immer erst in den Wrapper gewandelt und danach erst wieder zurück? Welches Sinn macht das?
Interessanter Weise hat der Compiler keine Probleme mehr wenn man die „...
“ beim zweiten Argument entfernt.
Ein Bug? Gewollt? Weiß jemand mehr?
One Response to Fragen zu mehrdeutige Methodenaufrufe