Jav*_*per 2 java design-patterns
假设我们有一个名为Intersection的类,带有一个findIntersect(line1, line2)方法.它返回一个名为的对象point,其中包含2个字段x和y坐标.现在,如果输入是2条平行线,那么与用户无法获得结果的最佳通信方式是什么?虽然示例是特定于行的,但问题是通用的 - 假设一个方法返回值对象,如果条件不匹配则返回什么?一些选项是:
null(问题:在许多地方读取,如果可能,应避免返回null返回值)hasNext()在Iterator?Exception?请让我知道最好的方法.
Mat*_*all 11
无论你做什么,都要记录下来.作为函数的调用者,我希望在方法的JavaDoc中清楚地描述确切的行为,特别是边缘情况.
在这种特殊情况下,我可能会回复一个Optional<Point>.Optional是非常好的,因为它非常清楚地传达了一个价值可能不存在的信息.如果声明的返回类型是,那么理智的API永远不会 - 永远不会返回.nullOptional
更多阅读:使用和避免null和避免!= null语句