当前位置: 首页 > 知识库问答 >
问题:

Java在下面的枚举[duplicate]中{{}}和->是什么

闾丘博超
2023-03-14

我有一个很基本的怀疑!{{}}和->意味着什么,对于下面的枚举又意味着什么?

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个答案

程祺
2023-03-14

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

除了枚举常量之外,枚举声明的主体还可以包含构造函数和成员声明以及实例和静态初始值设定项。

在您的示例中,它是一个实例初始化器,它为RequestProperty字段分配一个值。在您的示例中,它被分配了一个lambda表达式。

 类似资料:
  • 具有以下定义 是否有一种方法可以正确执行比较以使用标准等式:

  • 问题内容: 所以,我看着这个“枚举”类型,并且它种好像一个华而不实的 数组 / / 给我。到底有什么用? 问题答案: 枚举是一种固定数量的常量,至少可以用于两件事 不变 这比创建一堆整数常量要好得多。 创建一个单例 您可以使用枚举来做一些有趣的事情,请看这里 也请看官方文档

  • 在typescript中枚举的用途是什么。如果它的目的仅仅是使代码可编辑,我们就不能使用常量来达到同样的目的吗 如果没有打字检查的好处,就不能写成。

  • 在Java中,有没有办法从现有枚举中定义一个新枚举?我想要以下功能。 1、2、3和所有这些都必须相同,即, 一个真实的例子是天、星期、周末、讲座、派对等。

  • 我应该工作,对吧?但它不是!!!!它告诉我dbValue可以转换为RelationActiveEnum...

  • 问题内容: Java不允许枚举位于接口内部,但是默认情况下,接口内部的每个数据成员都是。有人可以澄清吗? 问题答案: 枚举不能是最终的,因为编译器将为程序员明确为其定义实现的每个枚举条目生成子类。 此外,根据JLS第8.9节,没有实例具有自己的类主体的枚举是隐式最终的。