问题标签 [deprecation-warning]

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 回答
949 浏览

ruby-on-rails - 如何在较新的 Rails 上用 readonly 替换 find?

我的项目中有这个遗留代码:

显然,它按 id 搜索,并且只搜索非只读的对象。但是 readonly 不是模型的属性,这应该检查定义该实例是否为只读实例的实际 ActiveRecord 属性。我不知道这是否是这段代码的实际作用,也许 :readonly => false 在那里没用。但我得到了预期的警告:

而且我不能用 where 替换它,因为我不能检查 SQL 中的只读性,因为它不是 SQL 属性。

该错误实际上明确指出,如果在范围内,我仍然可以使用 find。但我做了一个范围,像这样:

但是抛出了同样的警告,但是在模型而不是控制器的范围声明行中......


我做了一些其他的测试:

将其替换为 where('id = ? AND readonly = false', id) 实际上会产生错误,因为例外 - readonly 不是模型的正确选择。

运行没有只读位的代码会破坏测试,因为它返回只读记录,并且代码稍后会尝试更新它们,从而给出错误。

向查找哈希添加不正确的选项,例如 find(id, :readonly => false, :ldisfs32j9fmdf90sdfds => false) 会产生未知密钥错误,但除外。


所以,这个 :readonly 位是至关重要的,但我不能用简单的 where 替换它。如何在较新版本的 rails 中做到这一点?

0 投票
1 回答
601 浏览

c - 将库中的函数标记为已弃用

我正在使用 C 语言开发一个项目,该项目扩展了现有库(通过标准includes)。随着库的发展,许多功能被弃用。但是,这仅在文档中显示;该代码不会以任何方式标记此状态。

每当我尝试使用这些已弃用的功能之一时,我希望我的项目向我发出警告,特别是因为该库正在积极开发中,所以我可能在弃用之前使用了某些东西,并且在其状态发生变化时没有注意到。除了修改库代码本身之外,有什么方法可以在 gcc 下做到这一点?(一方面,它经常发生变化,以致于保持具有 gcc 属性的本地版本是不切实际的。)

这可能吗?似乎 Visual Studio 可以用它的

语法,但我不认为 gcc 支持这个,只是

在函数声明本身上。

0 投票
2 回答
2740 浏览

java - @SuppressWarnings("deprecation") 可以适用于不推荐使用的接口的使用而不适用于整个类吗?

我有一些实现已弃用接口的遗留代码。这个特定组件将很快被弃用并自行删除,因此重构以解决编译器警告的根本原因是没有意义的。相反,我想压制它。但是,我不希望压制的范围是整个班级。

代码原来是:

DeprecatedBaz 是一个被标记为@Deprecated 的接口,它是一个第三方框架,这意味着我无法删除@Deprecated。我想禁止整个班级的警告,但不反对。基本上我想写:

但是,这是无效的语法,不会解析。所以接下来我希望我可以在导入时做到这一点,但这篇SO 帖子似乎暗示它必须在课堂上完成。

或者,我认为可能将其应用于必须实现接口规定的所有方法可能会解决问题,但这也不起作用。

所以看来我不得不在类级别应用注释:

我不喜欢这样,因为如果有人编辑这个类并引入引用已弃用代码的新代码,则警告将被吞下。

在这种情况下有没有办法限制范围?

0 投票
1 回答
22209 浏览

c++ - Mac OSX 10.9 中的 Glut 弃用,IDE:QT Creator

我试图在 qt creator 上构建一个 opengl 程序,安装在我的 mac 上,使用 osx 10.9。我收到了关于 glut 函数在 osx10.9 中弃用的几个警告,示例错误消息如下:

'glutInit' 已弃用:首先在 OS X 10.9 中弃用 [-Wdeprecated-declarations] glutInit(&argc, &argv); ^

我想知道 GLUT.h 在 osx10.9 中是否不再可用?根据其他一些帖子,据说只要我们将“OS X Deployment Target”改回OSX10.8,就可以了。如何在 qtcreator 中这样做?谢谢!

0 投票
1 回答
223 浏览

ruby - TestFirst.org Learn_ruby rake 和折旧警告:should 和 :expect 语法

在通过 Google 进行多次搜索后,我已经准备好从社区获得一些意见。我正在尝试申请旧金山的 App Academy,其中一项所需的准备工作是 TestFirst 的 Learn_ruby。我最初在我的 Windows 机器上的 Linux VM 上配置了这个。它工作得很好。当我运行 rake 时,它​​会一次列出一个问题;文字是有用的颜色;并且输出非常简洁,所以我只得到了我需要阅读的内容。我最近将我的系统擦除并配置为双启动 Xubuntu 14.04/Windows,而我曾经拥有的虚拟机早已不复存在。就像我在 VM 中所做的那样,我努力在我的 linux vm 中设置 Ruby。

我现在的问题是,当我rake在我的项目上运行时,我会收到相同的折旧警告:

弃用警告:

不推荐使用shouldfrom rspec-expectations 的旧:should语法而不显式启用该语法。改用新:expect 语法或显式启用:should。从 /home/kaji/Projects/learn_ruby/05_silly_blocks/silly_blocks_spec.rb:25:in `block (3 levels) in '调用。

在谷歌来回搜索之后,我在很大程度上理解了错误告诉我的内容。我什至找到了解决办法让它消失。感谢这篇文章:RSpec's New Expectation Syntax,我能够找到一种语法来消除警告。(基本上必须更改blah.should == #到文件expect(blah()).to eq(#)内部*_spec.rb。这似乎使警告很高兴。但是我仍然看到迹象表明我还有另一个问题。

输出不像我在虚拟机上时那样“友好”。它不是彩色的;它一次转储所有错误。我最喜欢 learn_ruby 的地方在于它一次只给了我一个目标,而输出却很少。现在我必须向上滚动很多方法才能看到我的问题是什么。

我已经厌倦了完全删除 RVM 和所有 gem 并重新安装以查看是否可以解决此问题。没有骰子。我是一个 Ruby Noobie,我对这一切有点不知所措。我想重新开始学习基础知识,但这已经困扰了我一个多星期。有没有人有这个问题/修复除了

我也尝试rpsec ~<=2.0从 Rakefile 中删除。我正在使用ruby -v 2.1.2Rails 4.1.1,并且我有 RSpec 3.0.0、2.99.0、2.0.0。我什至尝试找到一个关于更改语法的教程,但它确实令人困惑,因为它引入了许多我不知道的 Ruby 概念。在那一点上,我觉得我已经不知所措了,我缺少一些简单的东西。

希望我提供了足够的信息来提供帮助。

0 投票
8 回答
31503 浏览

android - 如何抑制已弃用的 Android 功能的特定 Lint 警告?

我使用版本开关来支持较旧的 Android 版本。

从命令行使用 Gradle 构建项目时,Lint 会输出以下警告:

我可以注释特定的行或方法以使警告静音(因为我是故意这样做的)?我不想禁用所有警告。

0 投票
2 回答
187 浏览

ruby-on-rails - 为什么我会收到有关 Rails 2.3 样式插件的弃用警告?

我有一个带有 /javascript 和 /plugins 的供应商目录/directgor​​y,但它们是空的,所以我也删除了它们。

我做了 git add --all 并推送了删除,但我仍然收到警告消息:

0 投票
4 回答
22694 浏览

python - Python/matplotlib:摆脱 matplotlib.mpl 警告

我正在使用 python 3.4 使用 matplotlib。当我启动我的程序时,我收到以下警告消息:

C:\Python34-32bits\lib\site-packages\matplotlib\cbook.py:123: MatplotlibDeprecationWarning: matplotlib.mpl 模块在 1.3 版中已弃用。改为使用import matplotlib as mpl。warnings.warn(消息,mplDeprecation,stacklevel=1)

据我所知,我不使用 mpl,我所有关于 matplotlib 的导入都是:

有什么我应该做的吗?

0 投票
1 回答
1512 浏览

python - 在不修改第三方代码的情况下抑制警告

我们使用第三方开源工具,它会生成警告:

如何在不修改第三方代码的情况下抑制此警告?

我知道如何使用warnings.filter()但我不能使用它:我py.test从命令行调用,因此在创建警告之前没有执行我的代码的单个源代码行。

围绕控制台脚本创建包装器不是一种选择。

0 投票
2 回答
914 浏览

ios - “文本”已弃用

我正准备将 iOS 6 iPhone 应用程序更新到 iOS8。此代码的第二行产生一条错误消息(“文本”已弃用。在 iOS 3.0 中首次弃用)。语法错误多年来一直在我的应用程序中没有引起问题,但我认为我会在完成我的 iOS 8 版本之前清理所有错误。