4

我需要遍历一个类的静态字段列表(比如,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>包含所有字段的类型。我怎样才能做到这一点?

我没有找到任何与我相匹配的问题,尽管关于反射有几个问题。如果我的问题是重复的,我深表歉意。

4

1 回答 1

3

这个怎么样?

patternList.add((Pattern)f.get(null));

(关于您的问题的措辞,该字段f是 type Field,但它的目标是 type Pattern。)

参考:http ://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Field.html

于 2013-03-16T21:26:57.930 回答