オーバーロードの優先順位

  1. 常にvar-argsでない方が優先される
  2. 引数が基本データ型で、var-argsでない場合は、完全一致、基本データ型の拡大変換、auto-boxing、auto-boxingのスーパークラスの順
  3. 引数が基本データ型で、var-argsの場合は、完全一致、基本データ型の拡大変換、auto-boxingで優劣はない。auto-boxingのスーパークラスは順位が低い。
  4. 引数がラッパークラス型で、var-argsでない場合は、完全一致、スーパークラス、auto-unboxing、auto-unboxingの拡大変換の順
  5. 引数がラッパークラス型で、var-argsの場合は、完全一致、auto-unboxing、auto-unboxingの拡大変換で優劣はない。スーパークラスは順位が低い。
引数順位パラメータサンプル
int1int Samp01.java Samp02.java Samp03.java
2long
3Integer
4Object
5int..., long..., Integer... Samp04.java Samp05.java Samp06.java
6Object...
Integer1Integer Samp07.java Samp08.java Samp09.java
2Object
3int
4long
5Integer..., int..., long... Samp10.java Samp11.java Samp12.java
6Object...