我寫了我自己的類加載器,它與實現接口插件的類一起工作。但是我無法將Class轉換爲Plugin。怎麼了?返回接口,而不是類<Interface>
public Plugin load(String pluginName, String pluginClassName) {
SimpleClassLoader system = new SimpleClassLoader();
system.setClassName(pluginClassName);
Plugin aClass = null;
try {
aClass = (Plugin) system.loadClass(pluginRootDirectory + pluginName + "\\" + pluginClassName + ".class");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return aClass;
}
Error:(18, 47) java: incompatible types: java.lang.Class cannot be converted to Plugin
我除了這是我SimpleClassLoader類的主要部分延伸的ClassLoader。
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
byte[] bytes;
try {
bytes = Files.readAllBytes(new File(name).toPath());
} catch (IOException e) {
throw new ClassNotFoundException();
}
return defineClass(className, bytes, 0, bytes.length);
}
什麼是異常拋出 – user2717954 2014-10-27 08:13:03
loadClass只是加載類。然後您需要創建該類的新實例。 – nos 2014-10-27 08:18:25