fre*_*low 96 java generics static type-inference
我遇到了一个涉及静态泛型方法的奇怪情况.这是代码:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我不必在表达式中指定任何类型参数Foo.createFoo()?这是某种类型推断吗?如果我想明确它,我如何指定类型参数?
Jon*_*eet 164
是的,这是基于分配目标的类型推断,根据JLS第15.12.2.8节.要明确,你会打电话给:
Foo.<String>createFoo();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61204 次 |
| 最近记录: |