は、私はJavaの仕様の欠点を参照して、an answer to another questionでこれを見た:これは本当に広大なオートボクシングですか?
は、より多くの欠点があり、これは微妙な話題です。外thisをチェック:コンパイラはオートボクシングの上に広げ> chosesがあるため、「長い」ここ
public class methodOverloading{ public static void hello(Integer x){ System.out.println("Integer"); } public static void hello(long x){ System.out.println("long"); } public static void main(String[] args){ int i = 5; hello(i); } }
、(それを自分でチェックしていない)印刷されます。オートボクシングを使用する場合や、まったく使用しない場合は注意してください。
これは実際にオートバイの代わりに拡大する例であると確信していますか?
私の最初のスキャンでは、i
に基づいて出力が "長く"、オブジェクトではなくプリミティブとして宣言されていることに同意します。しかし、場合には、あなたは
は本当にここで何が起こっている "整数" を印刷し
hello(Long x)
出力に
hello(long x)
を変えましたか?私はJavaのコンパイラ/バイトコードインタプリタについて何も知らない。
確かに拡大しています。 Intは長く拡張されます。 – EJP