我有一个像这样的枚举类:
public enum EArea
{
DIRECTLANE,
TURNLEFTLANE,
INTERSECTION,
SIDEWALK,
FORBIDDEN;
}
我想根据另一个类中该枚举的值构建AtomicRefrence:
public class CArea<T extends Enum<?>>
{
private final AtomicReference<T> type;
public CArea( ... ) //what should I put here?
{
type = new AtomicReference<T>( ... ); // and here?
}
}
我想稍后再做:
CArea area1 = new CArea( EArea.SIDEWALK );
CArea area2 = new CArea( EArea.DIRECTLANE );
但是我不知道如何在一般方法(这里是构造函数)中引用枚举的项。
最佳答案
如注释中所述,您可以将Enum值(一个实例)传递给构造函数。
public class CArea<T extends Enum<T>>
{
private final AtomicReference<T> type;
public CArea(T enumVal)
{
type = new AtomicReference<>(enumVal);
}
}
CArea area1 = new CArea<>(EArea.SIDEWALK);
CArea area2 = new CArea<>(EArea.DIRECTLANE);
注意:使用此类型参数可以是任何枚举。