hi, u said " I can find the arguments (String str, int i, byte b ) that can be passed ". but u have to remember that any literal which is a number is of the type int. and any decimal literal is of the type double. so when u write any literal for ex, 10, 200. they are all ints and not bytes or shorts. so ur method invocation of (String str, int i, byte b )is wrong. and your method invocation by the compiler wil be(String str, int i, int b ).