-1

在 Android 中,如何防止用户在我的方法中插入空值。我不想在运行时触发异常。我希望它显示为编译错误

例如,如果我有以下方法

public void myMethod(Object o);

我不希望用户能够使用它来调用它

myMethod(null)

提前致谢

4

2 回答 2

2

多个 notnull 注释(例如IntelliJ)@NotNull可以提供帮助,例如

public void myMethod(@NotNull Object o)

但是,如果您的方法的合同要求参数不为空,您还可以编写快速失败的防御代码,例如断言合同:

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

Assert例如junit.framework.Assert包含在 Android 运行时中的位置。assert默认情况下,VM 中禁用Java关键字。

于 2013-12-18T09:57:31.863 回答
1

为什么不这样做:

if(o==null)
    o=default;
于 2013-12-18T08:12:02.757 回答