gpt4 book ai didi

java - 定义的静态变量计数

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:27 24 4
gpt4 key购买 nike

我是 java 的新手,我想知道是否可以检索用特定名称定义的静态变量的数量?例如:

public static final String DB_CTRLDATA              = "controldata";
public static final String DB_CTRLDATA_CELLADDR = DB_CTRLDATA + ".cell_addr";
public static final String DB_CTRLDATA_ID = DB_CTRLDATA + ".id";
public static final String DB_CTRLDATA_PRICT = DB_CTRLDATA + ".pri_count";
public static final String DB_CTRLDATA_RMODE = DB_CTRLDATA + ".rmode";
public static final String DB_CTRLDATA_TOD = DB_CTRLDATA + ".tod";
public static final String DB_DWELLDATA = "dwelldata";
public static final String DB_DWELLDATA_FILENAME = DB_DWELLDATA + ".filename";
public static final String DB_DWELLDATA_ID = DB_DWELLDATA + ".id";
public static final String DB_DWELLDATA_OFFSET = DB_DWELLDATA + ".offset";
public static final String DB_DWELLDATA_SIZE = DB_DWELLDATA + ".size";
public static final String DB_POSTPROC = "postproc";
public static final String DB_POSTPROC_ID = DB_POSTPROC + ".id";
public static final String DB_POSTPROC_PRESENT = DB_POSTPROC + ".present";

我想知道有多少对象被定义为 DB_*。我知道将所有这些放在一个数组中是一种解决方案。

谢谢!

最佳答案

您可以使用反射来做到这一点。您可以使用 Class.getDeclaredFields() 方法访问类中定义的所有字段。然后您可以迭代这些字段并使用 Field.getModifiers()Modifier.isStatic(int) 检查它们的修饰符。如果字段是 static,您可以使用 Field.getName() 检查它的名称。一个简短的例子:

int count = 0;
for (Field field : MyClassName.class.getDeclaredFields()) {
int modifiers = field.getModifiers();
if (Modifier.isStatic(modifiers)) {
if (field.getName().startsWith("DB_")) {
count++;
}
}
}

请注意,您必须处理 Class.getDeclaredFields() 抛出的 SecurityException

关于java - 定义的静态变量计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22236621/

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