Bonjour à tous !

J'ai une question concernant les priorités entre varargs et les wrappers lorsqu'on appelle une certaine méthode.
Selon ce que je sais, la priorité est donnée aux éléments selon leur introduction dans le langage.
Donc, widening, boxing et puis seulement après les varargs.

Cependant, voici un exemple qui n'y répond pas et je ne me l'explique pas.

Voici tout d'abord un comportement standard :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
    public static void main(String[] args){
        short sh = 7;
        test(sh,6);
    }
 
    static void test(int x, int y){
        System.out.println("int, int");
    }
    static void test(short x, int y){
        System.out.println("short, int");
    }
    static void test(Short x, Integer y){
        System.out.println("Short, Integer");
    }
    static void test(Number x, Number y){
        System.out.println("Number, Number");
    }
    static void test(int... x){
        System.out.println("int...");
    }
    static void test(short y,int... x){
        System.out.println("short, int...");
    }

Dans ce cas, j'ai les priorités suivantes :
"short, int"
"int, int"
"Short, Integer"
"Number x, Number y"
"short, int..."
"int..."
Mais, si je change mon short par son wrapper,
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    public static void main(String[] args){
        Short sh = 7;
        test(sh,6);
    }
j'obtiens l'ordre suivant :
"short, int..."
"int..."
etc.
"short, int "
"int, int"
Soudainement, les varargs sont devenues prioritaires !

Quelqu'un aurait-il une explication du pourquoi l'unboxing n'a pas été préféré au varargs ?

Merci bien.