2

さて、ここにコードがあります:

public class Dec26 {
    public static void main(String args[]) {
        short a1=6;
        new Dec26.go(a1);
        new Dec26.go(new Integer(7));
    }
    void go(Short x){System.out.println("S");}
    void go(Long x){System.out.println("L");}
    void go(int x){System.out.println("i");}
    void go(Number n){System.out.println("N");}
}

出力が「ii」ではなく「iN」なのはなぜですか?

4

2 に答える 2

0

コンパイラは、最初にオートボクシング/アンボクシングせずに、最も近い一致を選択します。go(Number) が見つかり、ボックス化解除は使用しませんでした。

于 2013-10-06T06:58:15.027 に答える