java泛型方法无参_java – 调用泛型方法时未指定的类型参数

想象一下,我们有以下泛型类:

public class GenericClass {

private U value;

public GenericClass(U value) {

this.value = value;

}

}

和其他一些类MyClass中的以下泛型方法:

public void genericMethod(T arg) {

Object genericClass = new GenericClass(arg);

}

如果我们打电话,BT类型参数将获得哪个值

genericMethod("text");

一些说明:

上面的代码编译没有错误或警告,这对我来说似乎很奇怪.

反编译(通过IntelliJ IDEA 2016)显示以下代码:

public void genericMethod(T arg) {

new MyClass.GenericClass(arg);

}

请注意,新的GenericClass< BT>(arg)与新的GenericClass(arg)不同,因为后者等同于新的GenericClass< T>(arg)(类型推导),虽然T扩展了BT,但它们是不同的类型,和GenericClass可能有内部逻辑,其中确切的类型名称起着重要作用(例如,在某些地图中用作字符串键等).所以对我来说奇怪的是,为什么编译器静默使用类型推导而不是产生一些警告(或者甚至是错误),指出没有指定BT类型参数.也许我错过了什么.关于Java中泛型的重要性,但……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值