问题标签 [forward-compatibility]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
304 浏览

c# - 在不破坏遗留代码的情况下超集到子集类

看到我对 OOP 真的很陌生,如果我知道得更好,这本来可以避免的。我从我的类库开始了大约一年,并创建了一个类,让我们称之为 Tree,直到现在 Tree 类一直运行良好,它完全符合我的需要。

好吧,现在我注意到我有不同类型的树

我想将树的一些功能移动到它自己的命名空间并为这些其他树创建新的,如何在不破坏已经实现当前树的系统的情况下做到这一点?

有什么方法可以将呼叫从现有的“转发”到新的

0 投票
8 回答
62026 浏览

java - JDK“向上”还是“向后”兼容?

向后二进制兼容性(或向下兼容性) - 使用旧版本库 API 构建的客户端能够在新版本 ( wiki ) 上运行。

向上二进制兼容性(或向前兼容性)- 使用新版本的库 API 构建的客户端能够在旧版本 ( wiki ) 上运行。

Sun 关于自 1.4.2 以来 J2SE 5.0 中 JDK 不兼容性的一般文档(以及Java SE 6 与 J2SE 5.0的兼容性)描述了 JDK 的兼容性如下:

JDK 5.0与 Java 2 SDK v1.4.2向上二进制兼容,除了下面列出的不兼容性。这意味着,除了提到的不兼容性之外,使用 1.4.2 版编译器构建的类文件将在 JDK 5.0 中正确运行

我想文档作者在这句话中混淆了术语“向上”和“向后”兼容性。他们描述了“向后”兼容性,但将此功能称为“向上”兼容性。

这是一个错字,错误或预期的术语吗?JDK“向上”还是“向后”兼容?

0 投票
1 回答
95 浏览

javascript - Javascript - 在哪里可以找到/提出新方法?

例如,假设某人有一个新的、非常有用且很酷的方法的想法String.prototype.multiply。她在当前的 javascript 实现中没有看到它。但也许它已经在一些 javascript/ajax 库中实现了,或者类似的方法(使用不同的名称,但她不知道)是当前的事实上的标准,甚至已经在向未来的 ECMAScript 版本前进。

她的目标是在她的 js 代码中正确实现新功能,同时考虑到与较新的 javascript 或 3rd 方代码的兼容性(她不一定要提出新标准)。

找出/讨论的最佳地点是什么?

0 投票
3 回答
8692 浏览

porting - Node.JS 无法在互联网上运行

我在 Windows 上有用于 nodejs 的基本 webserver hello world 应用程序,它可以在 localhost 上运行。但是当我从互联网上测试它时,它无法连接。我在我的网件路由器中设置了端口转发。我是否错过了让我的 nodejs 服务器对外界可见的步骤?

谢谢。

0 投票
2 回答
4083 浏览

c++ - “向后移植” nullptr 到 C++-pre-C++0x 程序

或多或少是标题所暗示的。虽然我还没有使用 C++0x,但我想为它发生时做好准备,并且我还想减少我必须重写以使用它的一些工具的代码量。这样我就可以一次性获得向后和向前的兼容性。

我发现的最有趣的一个是nullptr,我最近经常使用它。

在检查了“官方解决方法”和Meyer 的建议之后,我决定在我的 C++ 和未来的 C++0x 程序中都使用它。第二部分很简单——作为关键字,nullptr将被简单地支持。但第一部分让我有些不适。

Meyers 提案的功能如下:

该提议的问题在于它声明了要按照std::nullptr_tC++0x 要求声明的类型。这意味着要使解决方法“感觉原生”,必须通过重新打开std::命名空间来添加类型来完成。我有这样的理解,在 C++ 程序中这样做是非法的(不像添加专业化,这显然是皱眉和放手警告)。

我想在 C++ 程序nullptr中以舒适和合法的方式使用。我想到的一个选择是在另一个命名空间中声明类型,然后将其引入 using using

这是使它工作的正确方法吗?它将强制using指令,这也强制指令的特定顺序#include。我是否期望没有 C++0x 之前的代码会请求nullptr_t具有命名空间的类型(例如,作为函数参数类型)?如果这样做,它真的会“感觉像本地人”吗?


作为附录,尝试将一些漂亮的 C++0x 东西反向移植到 C++ 以获得更好的兼容性和编码是受欢迎的还是不受欢迎的?与此同时,我已经将这个解决方案和我正在开发的其他解决方案集成到一个要发布的软件中

0 投票
1 回答
466 浏览

android - Android 菜单向前兼容

我创建了一个具有最低 SDK 7 的应用程序,以获得与流通设备的最大兼容性。在Android手机(GB2.3)上,按下菜单按钮会在屏幕底部弹出一个菜单条,这是正确的。

但是在没有菜单硬件键的 HC3.2 平板电脑上,我希望屏幕底部有一个软菜单键,但它没有出现,所以我无法打开我的菜单。

我不知道在哪里调查以及要分享我的代码的哪一部分,所以你能告诉我我必须在哪里寻找菜单软按钮吗?

在阅读了最新的 Android 版本中已弃用菜单后,我不知道 ICS4 是否有软菜单按钮。我从未在这样的设备上测试过我的应用程序。你能给我一些建议吗?

谢谢

0 投票
1 回答
594 浏览

firefox-addon - 为 Firefox 10 安装 Xpather

我想在 Firefox 10 中使用Xpather。当我尝试安装它时,Firefox 说无法安装 Xpather,因为它不兼容。

0 投票
1 回答
545 浏览

crystal-reports - Crystal Reports 2011 中可能导致 Crystal XI 阅读器失败的功能

我在 Crystal Reports 2011 (v14) 中开发了一个报表,我需要让它在基于 Crystal Reports XI (v11) 阅读器的应用程序中工作。我正在着手采购 XI,因此我可以在那里调整报告,但同时,如果我能让 2011 年开发的报告能够正常工作,那就太好了。由于此答案中引用了前向兼容性说明,我希望这会起作用。

当我尝试在基于 XI 的应用程序中运行我的报告时,我得到

错误:-2147206429

TLV 记录无效。

在模块中:Crystal Reports ActiveX 设计器

我怀疑我的报告在 2011 年使用了 XI 中不存在的某些功能,并且以某种方式阻碍了 XI 阅读器引擎。2011年我拿了一个在XI开发的报表打开保存,在XI打开没有问题。

2011 年有哪些功能而不是 XI 可能会让我在这里绊倒?我应该检查我的报告以使其最有可能在 XI 中运行?

更新:我尝试重建我的报告,一次一个功能,以查看错误何时出现在 XI 上。只要我将参数的提示组创建为查询存储过程或表的动态列表,即使我没有设置提示组的任何特殊特征,它也会这样做。鉴于动态参数提示组与 XI 一起出现,这不应该工作吗?

0 投票
2 回答
1196 浏览

debugging - IE10 不使用 IE10“文档模式”接收来自 ActiveX 对象的事件

IE10 使用标准文档模式不获取 ActiveX 事件,在以前版本的 IE 上相同的控件触发事件,并且在触发时通知 IE。

我使用具有这种模式的代码来处理事件:'alert(true);'

'true' 仅在使用 IE9 和更低的文档模式时发出警报

有任何想法吗?

0 投票
1 回答
1180 浏览

c++ - Boost Serialize 向后兼容性问题

在 Boost v1.47 中保存的数据boost::archive::text_oarchive无法在 Boost v1.37 中加载boost::archive::text_iarchive。它使用 meddage 引发异常"unknown version"

这里为二进制存档的类似问题提供了一种解决方法,但它似乎不适用于文本存档。

我可以在 Boost v1.37 上进行修复吗?