Tag: 向后兼容性

对象到XML,向后和向前兼容性

我正在一个应用程序中工作,我们需要以XML格式保存对象,并在需要时稍后加载它们。 为此,我使用JAXB来编组和解组XML到Java类。 我的问题是我必须在某个时候更改Java模型(通过添加,重命名或删除属性),因此,我将拥有不兼容的已保存的XML,这些XML无法绑定到新的类表单。 为了解决这个问题,每次我必须进行更改时,我会在新软件包(以其版本命名)下获取所有类的副本并应用所请求的更改。 在保存XML时,我保存了它的版本,以便我可以决定JAXB应该扫描哪个包来解组这个XML。 我的问题是,有没有其他方法可以使用JAXB实现向后和向前兼容性? 如果没有,是否有任何其他技术可以支持这个?

编译为1.5编写的Java代码以使用1.4 JRE?

我有一个项目使用generics和一些Java 1.5 / 6位碎片。 是否可以编译此代码以在运行1.4 JRE的系统上工作? 我使用ANT构建脚本和javac任务来编译库。 这种构建很好,而目标属性是1.5。 如果我将目标更改为1.4,则会出现以下错误: generics are not supported in -source 1.4 (use -source 5 or higher to enable generics) 所以我添加了一个source属性并尝试使用值5和1.5。 新错误: javac: source release 5 requires target release 1.5 我是否必须完成所有代码并更改1.5内容以使其工作?

Java 6 Source向后兼容性和SQL

我的理解是,为了保持源兼容性,Java从不向公共接口引入新方法,因为这会破坏实现接口的现有客户端。 Java Release指出了各州 一般而言,该政策如下,但下列进一步列出的任何不兼容性除外: 维护版本(例如1.4.1,1.4.2)不会引入任何新的语言function或API。 它们将保持彼此的源兼容性。 function版本和主要版本(例如1.3.0,1.4.0,5.0)保持向上但不向下兼容。 然而, java.sql和javax.sql包继续发展并引入了许多不兼容的更改。 例如,我注意到以下不兼容的更改(在Java 6中引入): java.sql.Statement扩展了java.sql.Wrapper ,需要新的两个新方法。 java.sql.Statement引入了3种新方法 java.sql.PreparedStatement引入了19种新方法! java.sql.ResultSet引入了48种新方法! 你知道这些方法是如何以及为什么被添加的? java.sql的处理方式与平台的其他部分不同吗? 你知道关于这些新增内容的讨论/ JSR吗?

java 7语言向后兼容性

简短问题:如果我使用Java 6中以前不可用的相对“次要”Java 7语言function,例如try-muticatch块…这是否意味着我的程序将无法在安装了JRE 6或JRE 5的计算机上运行按原样编译? 如果这是正确的,是否可以快速生成JRE6 .jar可执行文件而无需更改Java 7源代码(顺便提一下,它将使用的唯一Java 7function是try-multicatch块)?