不可以
[color=Red]类名.class和实例.getClass()[/color]都是java.lan.Class的对象,前者是静态的,后者是动态的,也就是针对你的类实例来创建的信息,一般情况下使用完全相同,两者的区别在处理反射时就能体现出来,如[code=java]package cn.itcast.heima;
import java.util.*;
import java.lang.reflect.*;
public class CSDN {
public static void main(String args[]) throws Exception{
Set s = new HashSet();
s.add("foo");
Iterator it = s.iterator();
Class[] argsClass = new Class[0];
Method m = Iterator.class.getMethod("hasNext",argsClass);
System.out.println(m.invoke(it,argsClass));
}
}[/code]这个可以正常执行[code=java]package cn.itcast.heima;
import java.util.*;
import java.lang.reflect.*;
public class CSDN {
public static void main(String args[]) throws Exception{
Set s = new HashSet();
s.add("foo");
Iterator it = s.iterator();
Class[] argsClass = new Class[0];
Method m = it.getClass().getMethod("hasNext",argsClass);
System.out.println(m.invoke(it,argsClass));
}
}[/code]这个就不能正常执行了 |