没有main()的quine程序

Uro*_*s K 12 java enums quine

我遇到了这个没有主要方法的小quine程序:

enum f {
  f;
  System z;
  String s="enum f{f;System z;String s=%c%s%1$c;{z.out.printf(s,34,s);z.exit(0);}}";
  {z.out.printf(s,34,s);
  z.exit(0);}
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释这是如何工作的?谢谢.

Jes*_*per 9

第5行和第6行是实例初始化器.在实例化类时调用它.由于这是一个带有一个常量命名的枚举f,因此它将被实例化一次并执行实例初始化程序块.

请注意,znull,但是out是类的静态成员System,这样你就可以打电话z.out.printf()呢.该printf语句将字符串s作为带有两个参数的格式字符串34及其s自身.

34是双引号的ASCII码".填写格式字符串%c%1$c格式字符串.该%s格式字符串由格式字符串替换s本身.