2013-12-18 43 views
-1

在Android中,如何防止用戶向我的方法插入空值。我不想在運行時觸發異常。我希望它出現的編譯錯誤Android非空值

舉例來說,如果我有以下方法

public void myMethod(Object o); 

我不希望用戶能夠使用

myMethod(null) 

感謝叫它提前

+0

你會更具體嗎? –

+0

由於編譯器無法猜測輸入值是什麼,因此在編譯時無法檢測到空值。您仍然可以在您的方法中測試空值,並避免例外 – slecorne

+0

在http://stackoverflow.com/questions/997482/does-java-support-default-parameter-values中查找實現相同的其他方式。這不完全是你要求的,但它會給你一個想法,以不同的方式實現整個事情。 – Shaleen

回答

2

multiple notnull annotationsIntelliJ's @NotNull可以幫助,例如,然而,如果你的方法的契約要求參數非空,你也可以編寫防錯快的防禦性代碼,例如,主張合同:

public void myMethod(Object o) { 
    Assert.assertNotNull(o); 

其中Assert是例如, junit.framework.Assert包含在Android運行時。默認情況下,虛擬機中禁用Java assert關鍵字。