java– 考虑出现在许多枚举中的方法

java– 考虑出现在许多枚举中的方法,第1张

概述参见英文答案 > Enums shared static look-up method                                    2个我有几个带有name属性的枚举和一个byName方法,对于所有这些都大致相同:public static Condition byName(String name) throws NotFou

参见英文答案 > Enums shared static look-up method                                    2个
我有几个带有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接口使用默认方法无法访问values()方法

我知道这可能是用AspectJ完成的,但是我宁愿不为这样简单的东西引入编译时编织,而Spring AOP(我手边有这个是Spring项目)只允许绑定现有的方法和不添加新的.

任何其他可行的解决方案,为枚举添加常用方法?

最佳答案这是我在同样情况下所做的事情:

public interface EnumWithnames {    String getname();    static 

当我需要通过名字找到枚举值时,我打电话给:

Condition c = EnumWithnames.byname(Condition.class,"name 1");

注意cls.getEnumConstants()与values()相同. 总结

以上是内存溢出为你收集整理的java – 考虑出现在许多枚举中的方法全部内容,希望文章能够帮你解决java – 考虑出现在许多枚举中的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265913.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)