如何在java中引用枚举项

时间:2017-04-11 11:11:59

标签: java enums reference

我有一个这样的枚举类:

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 );

但我不知道如何在一般方法中引用枚举的项目(这里是构造函数)。

1 个答案:

答案 0 :(得分:1)

如评论中所述,您可以将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);

注意:使用此参数,type参数可以是任何枚举。