我想使用泛型类型来确保方法的参数具有相同的类型,如下所示:
public static <T> void x(T a, T b)
我假设传递给此方法的两个参数(a和b)必须始终属于同一类型。但令我惊讶的是,我能够将任何类型的参数(甚至是基本类型)传递给方法x,就好像T被擦除为Object一样,而不管传递的是什么参数。
到目前为止,我发现的唯一变通办法是像这样使用“扩展”:
public static <T, U extends T> void x(T a, U b)
但是,尽管我可以接受它,但它不是我想要的。
有没有办法使用泛型类型来强制一个方法的所有参数的类型?
https://stackoverflow.com/questions/30217236
复制相似问题