如何从 ClassName.class 获取静态最终 属性?
How to get static final property from ClassName.class?
我有一组 class 这样的。
private static final Class<?>[] CLASSES = new Class[]{
First.class,
Second.class,
};
每个class有属性
public static final String PROPERTY = "property_name";
需要循环比较 PROPERTY
与特定字符串,如下所示:
for (Class<?> item : CLASSES) {
string.equals(item.PROPERTY)
}
但我找不到从“.class”转义得到item.PROPERTY
.
的方法
在这种情况下如何以正确的方式获得PEOPERY
?
谢谢!
你应该使用:
for (Class<?> item : CLASSES) {
Field f = item.getDeclaredField("PROPERTY");
string.equals(f.get(item));
}
你的意思是如何处理异常?
enter code here
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
Class<?>[] classes = new Class[] { ClassA.class, ClassB.class, };
for (Class<?> item : classes) {
Field f = item.getDeclaredField("PROPERTY");
System.out.println(f.get(item));
}
}
enter code here
public static void main(String[] args) {
Class<?>[] classes = new Class[] { ClassA.class, ClassB.class, };
for (Class<?> item : classes) {
try {
Field f = item.getDeclaredField("PROPERTY");
System.out.println(f.get(item));
} catch (Exception e) {
e.printStackTrace();
}
}
}
我有一组 class 这样的。
private static final Class<?>[] CLASSES = new Class[]{
First.class,
Second.class,
};
每个class有属性
public static final String PROPERTY = "property_name";
需要循环比较 PROPERTY
与特定字符串,如下所示:
for (Class<?> item : CLASSES) {
string.equals(item.PROPERTY)
}
但我找不到从“.class”转义得到item.PROPERTY
.
在这种情况下如何以正确的方式获得PEOPERY
?
谢谢!
你应该使用:
for (Class<?> item : CLASSES) {
Field f = item.getDeclaredField("PROPERTY");
string.equals(f.get(item));
}
你的意思是如何处理异常?
enter code here
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
Class<?>[] classes = new Class[] { ClassA.class, ClassB.class, };
for (Class<?> item : classes) {
Field f = item.getDeclaredField("PROPERTY");
System.out.println(f.get(item));
}
}
enter code here
public static void main(String[] args) {
Class<?>[] classes = new Class[] { ClassA.class, ClassB.class, };
for (Class<?> item : classes) {
try {
Field f = item.getDeclaredField("PROPERTY");
System.out.println(f.get(item));
} catch (Exception e) {
e.printStackTrace();
}
}
}