2016-02-19 68 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了解更多信息,并且通常在网络上进行讨论。

我想要回答为什么,只是冒险猜测,以适应如何实施其他类型的模式。