Scala 如何在文档中提到空参数?

Scala 如何在文档中提到空参数?,scala,null,documentation,Scala,Null,Documentation,我正在开发一种API,并想知道通常更倾向于用哪种方式提及空参数: /** /* Does something... /* @param p the paramteter to do something... /* @throws NullPointerException if p is null ... A.编写类似于@throw NullPointerException的代码,如果p为null,则假定所有doc未对其进行任何说明的方法都将接受null参数: /** /* Does somet

我正在开发一种API,并想知道通常更倾向于用哪种方式提及空参数:

/**
/* Does something...
/* @param p the paramteter to do something...
/* @throws NullPointerException if p is null
...
A.编写类似于
@throw NullPointerException的代码,如果p为null
,则假定所有doc未对其进行任何说明的方法都将接受null参数:

/**
/* Does something...
/* @param p the paramteter to do something...
/* @throws NullPointerException if p is null
...
B.编写类似
的代码,假设不接受空参数,则该参数可以为空

/**
/* Does something...
/* @param p the parameter... this can be null
...
从常识上讲,我觉得A更为合法,但事实上一直写下去是很痛苦的

你会选择哪条路


谢谢大家!

选项A更清晰,而且还有一个额外的好处,即scaladoc将正确显示异常


然而:无论在哪里,只要可以,使用
选项
类型,而不是
null
,这是更好的实践,也更惯用。这样,类型系统本身将记录可以省略的参数,并且编译器将能够确保您永远不会忘记检查缺少的值。

我认为两者都可以。您应该提到是否将获得
NullPointerException
。在参数可以为null的情况下,您应该描述这意味着什么,而不是说它可以为null。比如说

* @param locale the Locale used to format dates, or null to use the system's default Locale.

因此,任何可为null的参数都应该是
选项
,我可以假设用户会理解任何不是
选项
的参数都不应该是
null
,然后我就不需要明确提到
NullPointerException了?是的!这就是要点。这里有一个简单的介绍:顺便说一句,除了做一系列的
if
检查之外,还有很多方便的方法来处理
选项。例如,您可以使用模式匹配,也可以(通常非常优雅地!)将它们视为一个可以容纳零或一件东西的小型集合。这很有帮助!非常感谢:)@RyoichiroOka您是否在这个问题上添加了“java”标记并对其进行了编辑?我回答时相信是Java。我对Scala一无所知,所以如果有人评论说它不适合Scala,我很乐意删除它。我完全忘了我是在和Scala合作。但感谢您的回答,因为我一直在想Java中的同样问题:)