可以说我们有一个叫做Intersection的类,它带有一个findIntersect(line1, line2)
方法。它返回一个名为的对象point
,其中包含x
和y
坐标两个字段。现在,如果输入是2条平行线,那么传达与用户未获得任何结果的最佳方式是什么?尽管示例是特定于行的,但问题是通用的-假设方法返回值对象,如果条件不匹配该返回什么?一些选项是:
null
(问题:在很多地方都读到,如果可能,应避免返回空值)hasNext()
in中的方法Iterator
?Exception
?请让我知道最佳方法。
您的第二个选择似乎很理想...
的确,如果不满足某些条件,您不想返回null-null并不意味着“不存在”,它基本上意味着一个转义序列。
通常只有在执行内部计算时才会抛出异常(试图读取不存在的文件,特定变量的格式等)。抛出异常会警告用户执行了非法操作……未发现交集不会表示发现了非法的东西,但是返回了false。
调用布尔函数来首先测试是否存在特定的交集会“干净”得多,如果存在,则调用下一个函数来查找它。
另一种选择是else语句,在运行findIntersect()的所有迭代之后...如果找到相交,则将其返回,否则返回表示没有相交的其他对象(例如-1,-1)
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句