java - Java自定义类加载器中调用findClass时类名的规范

标签 java class

在客户类加载器中,我有一个 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/

相关文章:

python - 如何从方法中创建类的新实例?

java - 嵌套类与单独的类文件

java - 如何更改点击时的标签颜色?

java - java 中的 protected 访问不起作用

java - 如何安全地返回通用对象

java - MVC - Controller 类教程

java - 我是否必须捕获尝试将值解析为 int 或 long 的 NumberFormatException?

c# - 接口(interface)疑惑问题

java - Android 中的新类遇到问题

c++ - 如何初始化类的实例?