我有一個類正在實現與泛型的接口。ClassCastException:類實現接口,仍然獲得classcast
class MainClass {
interface MyInterface <T extends MyInterface.A> {
static class A {
}
}
}
//I have another class which implements this interface:
class ImplementingClass implements MyInterface<A> {
}
//I am loading MyInterface class from a jar in a different place:
static loadJar(){
String dexPath = new ContextWrapper(context).getCacheDir().getAbsolutePath();
DexClassLoader classLoader = new DexClassLoader(JAR_FILE, dexPath, null, ClassLoader.getSystemClassLoader());
Class c = classLoader.loadClass("ImplementingClass");
MyInterface nvQS = (MyInterface) c.newInstance();
}
我得到了類拋出異常。我不確定這是爲什麼?該類正在實現接口。我也嘗試了泛型,但我仍然得到了例外。
如果我不清楚,請讓我知道。謝謝。
包括異常: java.lang.ClassCastException:ImplementingClass不能轉換到MainClass $ MyInterface的
嘿,界面是建立在Android的Java靜態庫。 jar和jar加載器將被編譯爲單獨的副本嗎?那是問題嗎?你認爲這就是爲什麼我會得到一個班級演員?
你遇到了什麼異常?您尚未提供堆棧跟蹤。通常,異常中的錯誤消息會明確地告訴您具體是什麼問題。 – azurefrog
你使用IDE嗎?我建議你使用Debug來查看對象「c」。看到它是課堂。 – MageXellos
是的,我做到了。 「已加載類的名稱:ImplementingClass」 – user2248720