Dominique Gallot:
Faux,
Cette notion n'est qu'un short - cut vers Class.forName()....
Que le compilateur fait !
On regarde le bytecode et on constate.
1) javac et jikes generent le meme bytecode.
2) X.class et Class.forName("X") ne font pas la meme chose
3) X.class appelle Class.forName() la premiere fois et initialise
4) X.class lance une Error et Class.forName("X") une exception.
Donc tout le monde a tout faux ;-))
Guillaume
--
public class ForName {
private static Class class$Ljava$lang$String;
public static void main(String[] stringArr)
{
// Class class1=String.class
Class class1=(ForName.class$Ljava$lang$String != null)
? ForName.class$Ljava$lang$String
: ForName.class$("java.lang.String");
}
static Class class$(String string)
{
try { return (Class.forName(string)); }
catch (ClassNotFoundException classnotfoundexception)
{
throw new NoClassDefFoundError
(classnotfoundexception.getMessage());
}
}
}