在客户类加载器中,我有一个 findClass 方法,如下所示:
public Class findClass(String className){
byte classByte[];
Class result=null;
result = (Class)classes.get(className);
if(result != null){
return result;
}
try{
return findSystemClass(className);
}catch(Exception e){
}
try{
String classPath =
((String)ClassLoader.getSystemResource(className.replace('.',File.separatorChar)+".class").getFile()).substring(1);
classByte = loadClassData(classPath);
result = defineClass(className,classByte,0,classByte.length,null);
classes.put(className,result);
return result;
}catch(Exception e){
return null;
}
}
如果我要查找的类位于默认包中,如何指定该类的名称。例如,如果该类名为 myclass.class
,我如何将此名称传递给此方法。将其称为 findClass("myclass")
或 findClass("myclass.class")
似乎不起作用。
最佳答案
尝试使用完全限定名称:findClass("mypackage.MyClass")
关于java - Java自定义类加载器中调用findClass时类名的规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844942/