这是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的声明边界
创建并用于使用第节(§15.12.2.7)的算法推断类型参数的约束。解决任何等式约束,然后,对于Ti形式的每个剩余约束,“entends”应为“extends”。
Integer i = instance.<Integer>get();
Integer i = instance.get();