我有三個文件:Java類型鑄造
ScriptProcessor.java:
public interface ScriptProcessor {
public String someMethod();
}
ScriptProcessorDummy.java:
public class ScriptProcessorDummy implements ScriptProcessor {
public String someMethod{
return "some string";
}
}
在main方法,該代碼執行以下操作:
URLClassLoader loader = null;
loader = new URLClassLoader(new URL[] {new URL("JARFILE")});
if (loader != null) {
ScriptProcessor processor = (ScriptProcessor) loader.loadClass("ScriptProcessorDummy").newInstance();
}
「JARFILE 「包含ScriptProcessor和ScriptProcessorDummy的類文件。
使用JDK 1.4時,代碼工作正常,但在使用JDK 1.5時,類型轉換(對ScriptProcessor)失敗,並返回java.lang.ClassCastException。
有人請告訴我如何解決這個問題。
感謝, 拉吉
是什麼讓你認爲與泛型有任何關係? – Gabe
添加一個Object類型的臨時變量,將newInstance的結果放入該變量中,並查看您在調試器中看到的內容。 – bmargulies
@bmargulies:嗨,當我把newInstance的結果放入Object並打印obj.getClass()時,我得到了ScriptProcessorDummy。你能告訴我什麼是正確的方式來派生派生類的實例到相應的接口。 – Raj