Java謎題6:雞與蛋

jdon發表於2019-09-23

先有雞還是蛋?
如果每一個雞蛋都從雞身上得到了這個問題的秘密答案,那又會怎樣呢?

package chicken;
 
public class Egg {
    final Object first;
     
    public Egg(Chicken mom) {
        first = mom.first;
    }
}


如果這樣,每隻雞也都從雞蛋中得到了答案,並將其代代相傳。那麼我們也可以問問任何一隻雞!

package chicken;
 
public class Chicken {
    final Object first;
     
    public Chicken(Egg egg) {
        first = egg.first;
    }
     
    public void ask() {
        // The goal is to reach this line
        System.out.println("First there was the " + first);
    }
}


現在您需要弄清楚的是如何建立蛋生雞雞生蛋這個問題。
這是天真的嘗試,會引發NullPointerException。您可以對其進行編輯以使其起作用嗎?

package creator;
 
import chicken.Chicken;
 
public class Creator {
    public static void main(String args) {
        new Chicken(null).ask();
    }
}


與通常應用的規則和系統相同:必須在啟用安全管理器的情況下執行(-djava.security.manager)。您的解決方案必須在creator包中。
 

相關文章