私はこのコードを実験しています:
interface Callee {
public void foo(Object o);
public void foo(String s);
public void foo(Integer i);
}
class CalleeImpl implements Callee
public void foo(Object o) {
logger.debug("foo(Object o)");
}
public void foo(String s) {
logger.debug("foo(\"" + s + "\")");
}
public void foo(Integer i) {
logger.debug("foo(" + i + ")");
}
}
Callee callee = new CalleeImpl();
Object i = new Integer(12);
Object s = "foobar";
Object o = new Object();
callee.foo(i);
callee.foo(s);
callee.foo(o);
これはfoo(Object o)
3回印刷されます。メソッドの選択では、実際の(宣言されていない)パラメータタイプを考慮に入れることを期待しています。何か不足していますか?それは印刷しますように、このコードを変更する方法はあるfoo(12)
、foo("foobar")
とfoo(Object o)
?