我可以获得 a 的所有接口,ClassType
但这allInterfaces()
会导致对调试对象的许多 JDWP 调用很慢。另一种方法是检查这一点:
Collection.class.isAssignableFrom(classType)
但是方法isAssignableFrom()
在java.lang.Class
,所以我必须invokeMethod
像这样调用这个方法:
javaLangClassReference.invokeMethod(threadRef, isAssignableFromMethod,
Arrays.asList(myClassType),
ObjectReference.INVOKE_SINGLE_THREADED);
但是这里有两个问题:
classType
不能用作方法调用的参数,它不是Value
- 如何将
java.util.Collection
作为参数提供给 Method(Arrays.asList(myClassType, ...))
?
另外,有没有更简单的方法来检查给定ClassType
的是否是 a java.util.Collection
?