gpt4 book ai didi

java - java中字段常量的字符串值

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:58 24 4
gpt4 key购买 nike

有没有办法从 int 值获取常量字段值的字符串表示形式?

例如 java.util.Calendar 声明了几个字段值,例如
public final static int AUGUST = 7;

有什么方法可以将此信息放入 Map<Integer, String> containing for instance
中吗? <7,“八月”>`等

附注这不是我的类(class),所以我不能使用 ENUM。我以日历为例。

最佳答案

您可以使用反射。例如说Foo是类,您可以使用以下方式获取字段:

Foo.class.getDeclaredFields();

然后您可以迭代多个字段并使用 Field.getName()Field.get(null)实现值(value)。

例如,说 Foo具有以下定义:

public class Foo {

public static final int JANUARY = 1;
public static final int FEBRUARY = 2;

}

您可以运行以下代码:

 HashMap<Object,String> map = new HashMap<>();

for (Field f : Foo.class.getDeclaredFields()) {
try {
int modifiers = field.getModifiers();//check if the field is public and static
if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers)) {
if (f.get(null) != null) {
map.put(f.get(null),f.getName());
}
} catch (Throwable t) {
}
}

这将导致 HashMap包含<1,"JANUARY"><2,"FEBRUARY"> .

关于java - java中字段常量的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22230787/

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