0

我修改了一个 Java 库,将一些方法的返回类型从原始类型更改为等效类(例如从 int 到 Integer,从 float 到 Float)。库中没有其他更改。

在正常使用中,更改不应改变库行为,因为 Java 会自动取消装箱这些值。否则,如果返回值为 null,JVM 将抛出异常(当前库在解析阶段为错误抛出异常)。

鉴于当前版本是 1.0.1,我应该将新库发布为 1.1.0 还是 2.0.0?

4

1 回答 1

1

摘自Practical API Design - Confessions of a Java Framework Architect 一书。

如果一个方法声称在一个版本中返回一个非空值,那么将其更改为返回 null实际上是一种不兼容的更改,因为这种更改可以从外部观察到并且对组件的用户产生负面影响。

在《企业软件架构和设计实体、服务和资源》一书中以另一种方式:

通常,版本标识符包括主要和次要版本号,期望次要版本更新与具有相同主要版本号的早期版本向后兼容。

软件版本控制 - 维基百科,免费的百科全书

原则上,在后续版本中,当功能发生重大跳跃时,主要编号增加,仅添加次要功能或重大修复时增加次要编号,修复次要错误时增加修订号。

在此处输入图像描述

于 2013-10-18T21:48:51.707 回答