A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© newlaw2013 中级黑马   /  2012-3-29 18:57  /  2259 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

               java  中API文档很多内容一看起来觉得好“抽象”,现在列出一个读了好几遍都没有想明白的知识点:
   Class类的forName:

forName
public static Class<?> forName(String className)
                        throws ClassNotFoundException返回与带有给定字符串名的类或接口相关联的 Class 对象。调用此方法等效于:
  Class.forName(className, true, currentLoader)

请哪位达人从另外的角度帮我解释一下红色字体部分的文字啊?(返回与带有给定字符串名的类或接口相关联的 Class 对象)

3 个回复

倒序浏览
本帖最后由 罗杰 于 2012-3-29 19:29 编辑

就是根据作为参数的字符串返回所对应的类的引用,举例子吧:
Class.forName("java.lang.String") 会先判断内存中是否加载了 java.lang.String 这个类,如果没有就加载这个类,然后返回这个类(字节码)的引用(是一个Class类的对象)

主要是反射时用,不理解反射可以看看张老师Java加强的17课(从17课开始)
回复 使用道具 举报
就是返回的是你调用的这个类的字节码文件的的引用,主要用在反射中,是为了拿到这个字节码文件中的一些方法名和调用这儿方法。
回复 使用道具 举报
首先正解在沙发,我再写一点简单的说明。

========================
public static Class<?> forName(String className)
返回与带有给定字符串名的类或接口相关联的 Class 对象
========================
解读:
指定字符串名,就是参数列表里的String className;
Class对象,也就是Class类的对象,是一个类在内存里的字节码;(字节码:也即是“类”在内存中的存在形式。)
static修饰符表明可以使用类名直接调用;

示例:
Class cls = new Class.forName(“Student”);
表示,根据字符串“student”在内存里查找对应的字节码文件,如果找到的话则把整个“student”类的字节码作为一个对象返回给Class类型的引用cls。

关于返回值是Class,只要你能明白class Class也就明白了,这是一个用于描述“类”的类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马