我读过一个信息,说在泛型类中不能声明静态变量/方法,但我真的不知道如何解决我的问题或绕过它,所以我请求您的指导。
我的需求是一个通用的“索引”,所有核心类都将扩展它。我正在创建一个游戏引擎,例如,我将有不同的游戏状态,它们都扩展了
另一个例子是,我将有不同的游戏对象,它们都扩展了
这是名为
如果有其他解决方案或变通方法,我会全神贯注!
我的需求是一个通用的“索引”,所有核心类都将扩展它。我正在创建一个游戏引擎,例如,我将有不同的游戏状态,它们都扩展了
State
,而State
又扩展了Nexus<State>
。我想要静态头和尾,这样我就可以保留所有游戏状态的链接列表,因为它们在创建时都添加到该列表中。另一个例子是,我将有不同的游戏对象,它们都扩展了
GameObject
,而GameObject
又扩展了Nexus<GameObject>
。这是名为
Nexus
的索引:public abstract class Nexus<T>
{
private static T head = null;
private static T tail = null;
private T next = null;
private static int num = 0;
protected Nexus() { this.Add( (T)this ); }
public T Add( T obj )
{
((Nexus)obj).next = null;
if( num++ == 0 ) head = tail = obj;
else tail = ( tail.next = obj );
return obj;
}
}
如果有其他解决方案或变通方法,我会全神贯注!
private static T head = null;
处得到了一个错误)。 谢谢,现在我更清楚地理解为什么我不能做我正在做的事情。然而,我仍然无法想出一种实现我想要做的事情的方法,即拥有一个通用工厂类,该类在所有使用工厂类的类之间使用链表,但链表仅在相同类型名称的类之间“共享”。 - Tanax