相关疑难解决方法(0)

可以使用通用Java方法的泛型类型来强制执行参数类型吗?

我想使用泛型类型来确保方法的参数具有相同的类型,如下所示:

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)

但是虽然我可以忍受它,但这不是我想要的.

有没有办法使用泛型类型来强制方法的所有参数的类型?

java generics types

55
推荐指数
6
解决办法
3500
查看次数

标签 统计

generics ×1

java ×1

types ×1