2013-08-07 41 views
3

我一直在尋找linkedlist.java,sun的源代碼。它在私有函數中添加斷言很好。有效的Java清楚地表明,即使是私有函數也應該被驗證。 仍然不清楚爲什麼所有斷言在Linkelist代碼中都被註釋掉了?爲什麼在Linkedlist.java源代碼中斷言註釋

這裏是一個快速鏈接:http://www.docjar.com/html/api/java/util/LinkedList.java.html

感謝,

+0

我認爲這是因爲'assert'只能在開發時使用。代碼不應該用'assert'釋放。 – Maroun

+2

@MarounMaroun爲什麼?在生產環境中,他們甚至不活躍。 –

+0

這可能是一個不成熟的優化。評論斷言的人可能並不知道他們不會觸發生產代碼。 –

回答

1

那一定是個錯誤。

由於斷言在生產環境中沒有成本(請參閱Enabling and Disabling Assertions),因此從開發切換到公開發布時,沒有理由評論它們。

當一個斷言出於任何原因出現無用時,它應該在公開發布前完全刪除,不會被註釋掉。

可能有很多實際的原因(我不會列出假設)讓開發者一次對它們發表評論,但是這些評論不應該發佈到發佈的代碼中。