java什么是{{}}和 - >在以下枚举中

时间:2017-08-07 13:14:54

标签: java lambda enums

我有一个非常基本的疑问! {{}}和 - >是什么意思是,这对于以下枚举意味着什么?

public enum BuyUsedFeatureFilters implements FeatureFilter {

    BuyUsedContext {{
        requestProperty = 
                req -> isBuyUsedContext(req);
    }};

    RequestProperty<Boolean> requestProperty;
    PropertyCondition defaultCondition = PropertyCondition.IGNORE;

    @Override
    public RequestProperty<Boolean> requestProperty() {
        return requestProperty;
    }


    private static boolean isBuyUsedContext(RequestContext requestContext){
        String buyUsedParam = requestContext.getParameters().get("buyUsedParam");

        if (StringUtils.equals(buyUsedParam, "buyUsed")) {
            return true;
        }
        return false;
    }
}

1 个答案:

答案 0 :(得分:2)

JLS #8.9.2允许使用该语法(强调我的):

  

除枚举常量外,枚举声明的主体可能包含构造函数和成员声明 以及实例和静态初始化器

在您的情况下,它是一个实例初始值设定项,它为requestProperty字段赋值。在您的示例中,为其分配了一个lambda表达式。