问个简单的问题

2021-04-20 08:44:27 +08:00
 hello2060

一个类里面定义了很多常量

public class Codes {

    static final public ErrorCode ISSUE_1 = new ErrorCode(XXX);  
    static final public ErrorCode ISSUE_2 = new ErrorCode(XXX);
    
    // 一共上百个定义 
}

现在要一个 Codes.getAll() 返回所有定义的 ErrorCode 。

请问有啥好点的方法吗?

1208 次点击
所在节点    Java
6 条回复
jjwjiang
2021-04-20 09:05:09 +08:00
这不典型的反射场景吗
Littlerain
2021-04-20 09:13:54 +08:00
```java
static List<ErrorCode> errorCodes;
static {
errorCodes = = new ArrayList<>();
for(Field f : Codes.class.getDeclaredFields()) {
if (f.getType() == ErrorCode.class) {
ErrorCodes.add(f.get(new ErrorCode()))
}
}
}
```
hhyyd
2021-04-20 09:14:50 +08:00
常量完全可以存 enum,然后 getValues()
hhyyd
2021-04-20 09:16:07 +08:00
@hhyyd 哦,不是 get,直接.values()
hello2060
2021-04-20 09:19:25 +08:00
谢谢各位,确实可以用反射,谢谢啦
hello2060
2021-04-20 09:19:52 +08:00
@hhyyd enum 应该也可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771794

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX