・JDK1.5より、AutoBoxingが導入された
・intの仮引数に対してIntegerの実引数を渡しても正しく処理される、逆も同じ
・intの引数を持つメソッドとIntegerの引数を持つ同じ名前のメソッドを定義して、両者を呼び出すテストをした
lecture.ArgTypeTestを参照
・結果
・オーバーロードしてもエラーにならない
・両方のメソッドがきちんと呼び分けられる
・片方のメソッドをコメントにしても、コンパイルエラーにならず、残ったメソッドが二回呼ばれる
====
package lecture;
/**
* プリミティブタイプの引数を持つメソッドをラッパークラスの引数でオーバロードできるか?
* テスト結果.
* ・オーバーロードしてもエラーにならない
* ・両方のメソッドがきちんと呼び分けられる
* ・片方のメソッドをコメントにしても、コンパイルエラーにならず、残ったメソッドが二回呼ばれる
*/
class ArgTypeTest {
/** intの引数. */
private void method(int a) {
p("check a");
}
/** Integerの引数. */
private void method(Integer a) {
p("check b");
}
public static void main(String[] args) {
// 両方のメソッドを呼んでみる
ArgTypeTest obj = new ArgTypeTest();
obj.method(1);
obj.method(new Integer(2));
}
private void p(String s) {
System.out.println(s);
}
}
====