Question

I came across this little quine program, written without main method:

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);}
}

Can somebody explain how does this work? Thanks.

Was it helpful?

Solution

Lines 5 and 6 are an instance initializer. It is called when the class is instantiated. Since this is an enum with one constant named f, it is going to be instantiated once and the instance initializer block is executed.

Note that z is null, but out is a static member of class System, so you can call z.out.printf() anyway. The printf statement takes the string s as a format string with two arguments, 34 and s itself.

34 is the ASCII code for double quote ". It is filled in for the %c and %1$c in the format string. The %s in the format string is replaced by the format string s itself.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top