Java 如何正确使用Types.isAssignable?

Java 如何正确使用Types.isAssignable?,java,annotation-processing,Java,Annotation Processing,我在处理API的注释时遇到问题。我有两个变量: TypeMirror someType; // with some value TypeMirror objectType = elementUtils.getTypeElement("java.lang.Object").asType(); 当我执行typeUtils.isAssignable(someType,objectType)时,它返回false 为什么会发生这种情况?任何类型都可以分配给对象。我误解了什么 注意:isAssignab

我在处理API的注释时遇到问题。我有两个变量:

TypeMirror someType; // with some value
TypeMirror objectType = elementUtils.getTypeElement("java.lang.Object").asType();
当我执行
typeUtils.isAssignable(someType,objectType)
时,它返回
false

为什么会发生这种情况?任何类型都可以分配给
对象
。我误解了什么


注意:
isAssignable
使用以下技巧返回预期值:

确定此类对象表示的类或接口是否与指定的类参数表示的类或接口相同,或者是其超类或超接口。如果是,则返回true;否则返回false。如果该类对象表示基元类型,如果指定的类参数正是该类对象,则该方法返回true;否则返回false


这并不能解释为什么不能将
POJO
类分配给
对象
。我没有确切的答案,
类。isAssignableFrom()本质上检查子类型关系。“子类型”和“子类”是两个不同的概念更多详细信息请参考,它可能会对您有所帮助。
TypeElement typeElement = (TypeElement) typeUtils.asElement(someType);
String qualifiedName = typeElement.getQualifiedName().toString();
TypeMirror copy = elementUtils.getTypeElement(qualifiedName).asType();
typeUtils.isAssignable(copy, objectType); // returns true