Java:如何检查Field是否为java.util.Collection类型

Qua*_*ent 21 java reflection types

我有一个实用程序方法,遍历各种类并递归检索字段.我想检查该字段是否为Collection.以下是一些示例代码:

void myMethod(Class<?> classToCheck)

Field[] fields = classToCheck.getDeclaredFields();

for(Field field:fields)
{
   // check if field if a Collection<?>

}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

Boz*_*zho 71

if (Collection.class.isAssignableFrom(field.getType())) {

}
Run Code Online (Sandbox Code Playgroud)

  • @ user979467我刚试过它,它的工作原理.也许你做错了什么? (2认同)

Kir*_*oll 7

你应该使用Class.isAssignableFrom:

if (Collection.class.isAssignableFrom(field.getType())
    ...
Run Code Online (Sandbox Code Playgroud)