2012-03-03 11 views
4

我們將用戶消息作爲格式字符串(例如"Invalid parameter [%s]")存儲在屬性文件中,並在運行時創建實際消息。這很方便,因爲非程序員可以編輯消息,但如果參數列表與格式字符串不匹配,則會導致運行時異常。如何在Java/Scala中管理用戶消息?

在Java/Scala中有編譯時檢查的「安全」解決方案,它仍允許非技術人員創建/編輯用戶消息嗎?

回答

2

我看過編譯Java中資源包的時間檢查最接近的是cal10n,但是它對每條消息都有相當多的鍋爐板,仍然沒有驗證正確的參數個數。它只是保證鑰匙真的存在。

也許你最好的選擇可能是使用Scala創建一個簡單的DSL?我認爲這可以讓你的非程序員編寫看似簡單的消息包,但是可以通過編譯器檢查scala源代碼。