本帖最后由 luisqq 于 2011-11-22 23:03:01 编辑

解决方案 »

  1.   

    表示管理Employee这个对象的类Class的对象(有点绕口,注意Class和class的区别)。
      

  2.   

    CSDN前辈的解释打个比方,比如说,人是一个类(Human Class),张三,李四是具体的人的对象(Human instance),即 Human 张三 = new Human("张三"),Human 李四 = new Human("李四"),这时我把张三挑出来,我要判断张三是什么类,比如调用 张三.getClass(),那么,getClass返回值应该是一个特殊的类的对象,而不是人的对象,对不对?也就是Class c = 张三.getClass(),而不是 Human c = 张三.getClass(), 因为张三,李四这样的才算是人的对象。那么这个特殊的类的对象c就是你所说的类对象。同样的,Class.forname( "Human"),返回的就应该是人的类的对象而不是人的对象。再打个比方,比如你有一个配置文件,就用porperties文件吧,里面有这样的设置
    classname=Human (根据不同的需求可以设置需要用不同的类)
    这时候,你想从配置文件中读出类的名字,然后想通过这个名字去生成实例,而读出文件时,得到的是"Human"这样的字符串,你要怎么用它生成实例呢,总不能 "Human" 张三 = new "Human"("张三")吧,字符串是不能当作类使用的,对不对?你也不可能在配置文件中设置一个类,然后从文件中读出来就是一个类,你只能在文件中设置classname=Human这样的字符串(文件里的内容都算是字符串),你从文件里读出来的也只能是字符串,对不对?那么这时候,你要生成实例,就必须通过这个特殊的类对象,即 Class c = Class.forName("Human");这样你得到这个类对象c以后,就可以通过相应的方法去创建人对象或者改变某个人对象的属性和方法。这个类对象到底有什么用?这里就是主要的用处了。
      

  3.   

    我不太懂,但是我可以这么说一下儿,Employee这个类没有getMethod方法,所以去掉class一定不行
      

  4.   

    你编写了一个Employee类,使用java编译器编译之后,生成一个字节码文件例如Employee.class,当要使用这个类时Java虚拟机会从硬盘上将这个文件Employee.class文件加载到内存中,在类加载的时候JVM会自动为我们创建一个与该Employee类对象的Class对象,该Class对象是Employee类数据结构的一种映射,我们从而可以从Class对象中访问类中的信息。
      

  5.   


    这里写错了 是Employee类対应的Class对象,每一个类在同一个类加载器中只用唯一的一个Class对象。
      

  6.   

    显然不可以,因为getMethod不是Employee这个类定义的,而是Class类定义的--signature--------------------------
    http://www.lunwenwa.com/huiyilunwen/
      

  7.   

    Class c = Employee.class; 
    Method m1=c.getMethod("getName");
    Method m2=c.getMethod("raiseSalary",double.class);