黑马程序员技术交流社区

标题: ClassLoader里面defineClass方法的参数到底是什么! [打印本页]

作者: Cheers_for_CRAZ    时间: 2013-10-26 03:00
标题: ClassLoader里面defineClass方法的参数到底是什么!
本帖最后由 Cheers_for_CRAZ 于 2013-11-1 20:03 编辑

ClassLoader里面有一个方法:defineClass(String name, byte[] b, int off, int len)
                          name:所需要的类的二进制名称,如果不知道此名称,则该参数为 null
                          这个二进制名称到底是什么,能不能给予详细的解释!拜托各位大侠了!  

作者: 落木萧萧    时间: 2013-10-31 12:07
与API方法有关的问题,最好的方法就是查API文档。
下面是ClassLoader中关于二进制名称的原话。

二进制名称
按照《Java Language Specification》的定义,任何作为 String 类型参数传递给 ClassLoader 中方法的类名称都必须是一个二进制名称。

有效类名称的示例包括:

   "java.lang.String"
   "javax.swing.JSpinner$DefaultEditor"
   "java.security.KeyStore$Builder$FileBuilder$1"
   "java.net.URLClassLoader$3$1"
还打算把《Java Language Specification》(Java语言规范)中第13章第1节 二进制的形式 中的话贴上来的,太长了…一页半A4纸那么多。

另外在《Java虚拟机规范》(Java Virtual Machine Specification )4.2.1节也有相关的说明。


作者: Cheers_for_CRAZ    时间: 2013-10-31 13:47
我勒个去,之所以没看懂才问的!要不然问有个毛用,楼上倒好,直接叫我查API文档!你的回答老给力了!给你一个赞。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2