[英]Why doesn't Java allow overloads based on type parameters?
我們可以在.NET中解決這個問題:
interface I<A> {}
interface I<A, B> {}
...但在Java中,相同的代碼將導致編譯錯誤。
這很有趣,因為即使類型信息在運行時消失,人們也會期望有關類型參數數量的信息仍然存在。
如果此限制與類型擦除有關,有人可以解釋原因嗎?
在java中,泛型類/接口具有固定數量的泛型參數。 這就是語言定義的方式。
與你所談論的最接近的可能是:
interface I<A> {}
interface J<A, B> extends I<A> {}
J
的實例仍可分配給I
類型的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.