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包中。