http://wouter.coekaerts.be/2012/puzzle-chicken
先有鸡还是蛋?
如果每一个鸡蛋都从鸡身上得到了这个问题的秘密答案,那又会怎样呢?
<b>package</b> chicken; <b>public</b> <b>class</b> Egg { <b>final</b> Object first; <b>public</b> Egg(Chicken mom) { first = mom.first; } }
如果这样,每只鸡也都从鸡蛋中得到了答案,并将其代代相传。那么我们也可以问问任何一只鸡!
<b>package</b> chicken; <b>public</b> <b>class</b> Chicken { <b>final</b> Object first; <b>public</b> Chicken(Egg egg) { first = egg.first; } <b>public</b> <b>void</b> ask() { <font><i>// The goal is to reach this line</i></font><font> System.out.println(</font><font>"First there was the "</font><font> + first); } } </font>
现在您需要弄清楚的是如何创建蛋生鸡鸡生蛋这个问题。
这是天真的尝试,会引发NullPointerException。您可以对其进行编辑以使其起作用吗?
<b>package</b> creator; <b>import</b> chicken.Chicken; <b>public</b> <b>class</b> Creator { <b>public</b> <b>static</b> <b>void</b> main(String[] args) { <b>new</b> Chicken(<b>null</b>).ask(); } }
与通常应用的规则和系统相同:必须在启用安全管理器的情况下运行(-djava.security.manager)。您的解决方案必须在creator包中。