下面是今天遇到的,才知道是有所这个不同的。
public class ReflectTest
{
public static void main(String []args)throws Exception
{
String str1 ="abc";
Class cls1=str1.getClass();
Class cls2=String.class;
Class cls3=Class.forName("java.lang.string");
System.out.println(cls1==cls2);
System.out.println(cls1==cls3);
}
}
出现了这个问题,未发现的类的异常,后面才发现这个String与sting是不一样的。
Exception in thread "main" java.lang.ClassNotFoundException: java.lang.string
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at ReflectTest.main(ReflectTest.java:8)