all of the statements above will result as the following statement after removing generic type information:
hence the compiler will report them as duplicate method declaration!
Always remember that generic type information is only valid at compile time. when the code is compiled, all generic type information is removed from the code.