Java中如何检查CtClass的字段是否是集合类型

问题描述 投票:0回答:1

我正在尝试使用 javaassit 列出 jar 文件中的变量。 我想检查类文件中的字段是否属于集合类型。我正在使用“Collection.class.isAssignableForm”,但它不起作用,因为 field.getType().getCLass() 将类返回为 CtCLassType。 有没有办法检查 CtClass 字段是否属于 Collection 类型? 以类似的方式如何检查该字段类型是否可序列化?

CtClass loClass = ClassPool.getDefault().get(lsClassName);
CtField[] loFields = loClass.getDeclaredFields();
// iterate over fields
for(CtField field: loFields){
  // this does not work
  Collection.class.isAssignableForm(field.getType().getCLass());
}

非常感谢任何帮助。

java javassist
1个回答
0
投票

尝试先将其转换为类吗?

Class clazz = loClass.toClass();
Field[] loFields = clazz.getDeclaredFields();
...
© www.soinside.com 2019 - 2024. All rights reserved.