我想使用泛型类型来确保方法的参数具有相同的类型,如下所示:
public static <T> void x(T a, T b)
Run Code Online (Sandbox Code Playgroud)
我假设传递给此方法的两个参数(a和b)总是必须是相同的类型.但令我惊讶的是,我能够将任何类型的参数(甚至原语)传递给方法x,就好像T被擦除为Object,无论传递什么参数.
到目前为止,我发现的唯一解决方法是使用'extends',如下所示:
public static <T, U extends T> void x(T a, U b)
Run Code Online (Sandbox Code Playgroud)
但是虽然我可以忍受它,但这不是我想要的.
有没有办法使用泛型类型来强制方法的所有参数的类型?