2016-02-19 71 views

回答

1

類型參數的靜態字段不允許與泛型一起使用,因爲靜態類型字段由類中的非靜態字段共享。請看下面的例子:如果類型參數靜態字段被允許像上面

public class Vehicle<T> { 
    private static T item; 
    // ... 
} 

,那麼這將是混亂的,決定項目的類型如下定義:

Vehicle<Car> car= new Vehicle<>(); 
Vehicle<Ship> ship= new Vehicle<>(); 
Vehicle<Train> train= new Vehicle<>(); 
Vehicle<Bus> bus= new Vehicle<>(); 

由於靜態場是與汽車,船舶,火車和公共汽車共享的,並非全部在同一時間,因此無法確定物品的實際類型。

參考:https://docs.oracle.com/javase/tutorial/java/generics/restrictions.html#createStatic

2

該類中的所有內容都是Static,在Java中,泛型不在靜態方法的範圍內。 See here瞭解更多信息,並且通常在網絡上進行討論。

我想要回答爲什麼,只是冒險猜測,以適應如何實施其他類型的模式。