这真是奇怪...我认为Java中的每个对象都有Object作为祖先。
我有一个ClassA,它扩展了我的ClassB并实现了Runnable接口。
创建ClassA后,我无法将其转换为Object。
假设getClassA返回一个ClassA实例。
我正在执行:
我有一个ClassA,它扩展了我的ClassB并实现了Runnable接口。
创建ClassA后,我无法将其转换为Object。
假设getClassA返回一个ClassA实例。
我正在执行:
Object obj = getClassA();
我也尝试过
Object obj = (Object) getClassA();
我遇到了不兼容类型的编译错误:找到了Class,需要Object。
这是怎么回事?我以为所有对象都可以强制转换成Object。
编辑:我认为这可能与ClassA实现了Runnable有关,但我不确定,需要解释一下。
编辑2:将getClassA()改为返回一个Object可以使程序编译通过。
编辑3:导入包含ClassB的包可以解决问题。Class B在另一个jar中定义。ClassA在另一个引用了包含ClassB的jar的包中定义。
getClassA()
的主体内容(不只是函数声明)。似乎错误出现在函数主体内部,而不是调用它的地方。 - Pavel Minaev