我需要迭代一个类的静态字段列表(比如MyClass
)。这些字段都是java.util.regex.Pattern类型。使用反射,我可以获得所有静态字段,如下所示:
MyClass mc = new MyClass();
List<Pattern> patternList = new ArrayList<Pattern>();
for (Field f : Commands.class.getDeclaredFields()) {
if (Modifier.isStatic(f.getModifiers())) {
// add the Pattern corresponding to the field f to the list patternList
}
}
现在,因为我知道所有字段f
都是java.util.regex.Pattern类型,所以我想创建一个包含所有字段的List<Pattern>
。我怎么能这样做?
我没有发现任何与我相符的问题,尽管有关于反思的问题有几个问题。如果我的问题是重复,我道歉。
答案 0 :(得分:3)
这个怎么样?
patternList.add((Pattern)f.get(null));
(关于您的问题的措辞,字段f
的类型为Field
,但其目标的类型为Pattern
。)
参考:http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Field.html