我正在编程一个增量phi*在Java中的实现,这是一个算法,旨在找到任何角度的路径在3D空间。我的api中最重要的方法是LinkedHashSet<Point> planPath()
。很明显,有些情况下没有可能的路径。一切正常,我能够检测到路径不存在,但我不确定我的API应该如何将此事件传递给用户。我可以抛出异常,将返回类型更改为Optional<LinkedHashSet<Point>>
,或者返回null
。我不确定最好的情况是什么。此外,如果我抛出一个异常,它应该是一个检查异常吗?
创建公共API时,我的一般规则是倾向于返回一个空集合,而不是返回一个null
值。
原因是,集合类有isEmpty()
函数来检查它是否有值。而且,Optional
类只存在于java 1.8之后。所以,我不认为使用这个类是个好主意。
因为它不是一个错误,我不认为抛出一个异常在这里可以是有意义的:)。