163 |
*/ |
*/ |
164 |
public static Class<?> forName(String name) throws ClassNotFoundException |
public static Class<?> forName(String name) throws ClassNotFoundException |
165 |
{ |
{ |
166 |
Class<?> result = VMClass.forName (name); |
return VMClass.forName(name, true, VMStackWalker.getCallingClassLoader()); |
|
if (result == null) |
|
|
result = Class.forName(name, true, |
|
|
VMStackWalker.getCallingClassLoader()); |
|
|
return result; |
|
167 |
} |
} |
168 |
|
|
169 |
/** |
/** |
208 |
if (cl != null) |
if (cl != null) |
209 |
sm.checkPermission(new RuntimePermission("getClassLoader")); |
sm.checkPermission(new RuntimePermission("getClassLoader")); |
210 |
} |
} |
|
if (name.startsWith("[")) |
|
|
return VMClass.loadArrayClass(name, null); |
|
|
Class<?> c = VMClassLoader.loadClass(name, true); |
|
|
if (c != null) |
|
|
{ |
|
|
if (initialize) |
|
|
VMClass.initialize(c); |
|
|
return c; |
|
|
} |
|
|
throw new ClassNotFoundException(name); |
|
211 |
} |
} |
212 |
if (name.startsWith("[")) |
return (Class<?>) VMClass.forName(name, initialize, classloader); |
|
return VMClass.loadArrayClass(name, classloader); |
|
|
Class<?> c = classloader.loadClass(name); |
|
|
classloader.resolveClass(c); |
|
|
if (initialize) |
|
|
VMClass.initialize(c); |
|
|
return c; |
|
213 |
} |
} |
214 |
|
|
215 |
/** |
/** |