这是java中的类型推断吗?
我有一个通用方法这是java中的类型推断吗?,java,type-inference,Java,Type Inference,我有一个通用方法 public <K extends Number> K get() { ... } 我的问题是,第二个方法调用是Java中类型推理的一种形式吗?是的,这是基于赋值类型的类型推理。它在JLS的以下部分中指定: 如果该方法的任何类型参数不是从实际参数的类型推断出来的,那么现在将按如下方式推断它们 如果方法结果发生在将进行赋值转换(§5.2)为类型S的上下文中,则让R为方法的声明结果类型,并让R'=R[T1=B(T1)…Tn=B(Tn)],其中B(Ti)为上一
public <K extends Number> K get()
{
...
}
我的问题是,第二个方法调用是Java中类型推理的一种形式吗?是的,这是基于赋值类型的类型推理。它在JLS的以下部分中指定: 如果该方法的任何类型参数不是从实际参数的类型推断出来的,那么现在将按如下方式推断它们
- 如果方法结果发生在将进行赋值转换(§5.2)为类型S的上下文中,则让R为方法的声明结果类型,并让R'=R[T1=B(T1)…Tn=B(Tn)],其中B(Ti)为上一节中为Ti推断的类型,或者如果未推断类型,则为Ti
- 约束S>>R',前提是R不是无效的;及
- 附加约束Bi[T1=B(T1)…Tn=B(Tn)]>>Ti,其中Bi是Ti的声明边界
Integer i = instance.<Integer>get();
Integer i = instance.get();