gpt4 book ai didi

java - 分解出出现在许多枚举中的方法

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:07 25 4
gpt4 key购买 nike

<分区>

我有几个带有 name 属性和 byName 方法的枚举,它们大致如下所示:

public static Condition byName(String name) throws NotFoundException {
for (Condition c : values()) {
if (c.name.equals(name)) {
return c;
}
}

throw new NotFoundException("Condition with name [" + name + "] not found");
}

由于 byName 方法在不同的枚举中是重复的,我想把它放在一个地方,避免重复的代码。

但是:

  • 枚举不能扩展抽象类
  • 具有默认方法的 Java8 接口(interface)无法访问 values() 方法

我知道这可能可以用 AspectJ 来完成,但我不想为像这样简单的事情引入编译时织入,而 Spring AOP(我手头有,因为这是一个 Spring 项目)只允许绑定(bind)到现有方法,而不是添加新方法。

任何其他向枚举添加通用方法的可行解决方案?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com