2013-12-18 46 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关键字。