The code snippet that does the trick is,
package com.twister;
class String{}
public class DoubleTrouble{
public static void main(String args[])
{System.out.println("This is the wrong one!");}
public static void main(java.lang.String args[])
{System.out.println("This is the right one!");}
}
The class String in the same package takes precedence over the class java.lang.String. Fully qualifying the method which prints "This is the right one" with java.lang.String does the trick!
The were a couple of other really good solutions -
1.Putting the invalid main in a inner class or altogether different class.
2. Having a static initialization block. No one said that "This is the wrong one" should not print when the code is run - just that "This is the right one!" should.
Having a static block does that - innovative!
Puzzle 15 is based on the same concept but is worded differently!!
No comments:
Post a Comment
Solution for this question?