[英]Calling static generic methods
我遇到了一個涉及靜態泛型方法的奇怪情況。 這是代碼:
class Foo<E>
{
public static <E> Foo<E> createFoo()
{
// ...
}
}
class Bar<E>
{
private Foo<E> member;
public Bar()
{
member = Foo.createFoo();
}
}
為什么我不必在表達式Foo.createFoo()
指定任何類型參數? 這是某種類型推斷嗎? 如果我想明確它,我如何指定類型參數?
是的,這是基於分配目標的類型推斷,根據JLS第15.12.2.8節 。 要明確,你會打電話給:
Foo.<String>createFoo();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.