问题标签 [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.
android - 我应该如何在 Android 中使用/不使用已弃用的方法
我已经很久没有问这个问题了。我在 Android 中遇到过许多已弃用的方法,但仍可在较新版本的 API 中使用。那么,只要可行,使用已弃用的方法有什么风险呢?
这是一个更具体的问题。我正在使用 TimePickers 并且getCurrentHour()方法在 API 23 中已被弃用,并被替换为getHour()。我显然不能getHour()
独占使用,因为大多数设备还没有使用 API 23,但是getCurrentHour()
最新版本的 Android 使用“错误”?我应该做以下哪一项?
- 继续使用
getCurrentHour()
直到几年过去 API 23 成为我的新版本minSdkVersion
? - 在代码中,显式检查 API 版本并根据结果调用
getCurrentHour()
或调用?getHour()
谢谢你帮助我学习。
python - 在 Python 中生成 STIX 时的警告消息
运行一个简单的示例时,我收到一条警告,我找不到原因。
结果是
C:\Python27\Lib\site-packages\stix\utils\deprecated.py:40: UserWarning: 该字段的使用已被弃用。收到'str'对象。警告。警告(味精)
提示赞赏
java - 处理android中不推荐使用的方法
我目前正在构建一个针对 API 23 的应用程序,最低 API 为 19。
在 API 23 中,android.widget.TimePicker 组件的一些方法已被替换。
例如:
被替换为:
现在,在我的应用程序中使用 TimePicker 时,我应该使用以下 if 语句检查设备是否使用 API 22 或更高版本:
我所做的是扩展 TimePicker 类并实现不推荐使用的方法,如下所示:
所以使用这个类的用户不会影响方法的改变(他应该只在他的实现中替换 TimePicker 类的导入)。
这是正确的做法吗?还是有更好的解决方案?
谢谢
cmake - 摆脱 CMake CMP0063 警告
配置我的 CMake 项目时,我不断遇到这个问题:
示例/CMakeLists.txt:74 (ADD_EXECUTABLE) 处的 CMake 警告 (dev):
未设置策略 CMP0063:尊重所有目标类型的可见性属性。运行“cmake --help-policy CMP0063”以获取策略详细信息。使用 cmake_policy 命令设置策略并禁止显示此警告。“EXECUTABLE”类型的目标“Protonect”具有
为 CXX 设置的以下可见性属性:为了兼容性,CMake 不会为此目标兑现它们。此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。
我知道我想打电话cmake_policy(SET CMP0063 NEW)
- 我正在这样做,但是我不确定我应该如何使用add_executable(Protonect)
.
ember.js - Ember 弃用:用组件替换视图
嘿,我在删除视图时遇到问题。
视图用作导航栏
参数看起来像这样的地方
在导航栏上有一个小的“后退”按钮,当它被点击时,父索引路由被打开。
它目前的工作方式如下:
但这在组件中不起作用,并且无论如何都是粗略的。我需要以某种方式将路由器注入组件吗?或者有没有人解决这个问题?导航栏用于很多地方,因此向 navbarObject 添加属性以定义某些操作并不是一个非常好的解决方案。
寻求这个解决方案:
现在我可以做
c++ - 如何在我的项目中将*标准库*函数/方法标记为已弃用(或完全禁用)?
我试图以某种方式禁用/标记为已弃用的可怕std::string::operator=(char)
重载(根据我的经验,它仅在错误地将整数分配给字符串时使用,并导致微妙且难以跟踪的错误)。
我试过:
带有静态断言的显式特化
它已经失败了,因为
<string>
它的显式实例化已经失败了std::string
- 属性,在
[[deprecated]]
不同位置应用于与上述类似的声明;我尝试的任何立场似乎都没有产生任何合理的结果; =delete
,由于与上述类似的原因而失败;- 我考虑过使用链接器技巧(以类似的方式,在同一个项目中,我们使用链接器选项对杂散使用进行运行时检查
setlocale
)--wrap
ld
,但这是一个模板和内联方法这一事实使问题复杂化。
现在的问题:
- 是否有一种标准方法可以以某种方式禁用(就像会发生的那样
=delete
)标准库中的任何函数或方法(阅读:在您无法更改标头中的声明的库中)? - 如上所述,但不是禁用,而是添加一个警告(就像会发生的那样
[[deprecated]]
); - 未能通过标准方法,是否有特定于 g++ 的东西?
- 如果没有“通用”(=适用于任何方法、任何类、任何函数……)解决方案,我们是否可以将某些东西应用于这种特定情况(=禁用模板类的方法,甚至可能只是一个具体实例化)?
mongodb - mongo --eval() 命令行参数是否也会在 MongoDB 3.x 中被弃用?
在关于MongoDB 3.x 弃用 eval() 函数(应该如此)的讨论之后,我想知道是否有任何计划也弃用 --eval() 命令行参数的可用性,例如:
谢谢
symfony - SonataAdminBundle 中 ModelAutocompleteType::class 的选项 Model_manager
我正在尝试将我的应用程序升级到 symfony 3。但是有一个我无法修复的弃用通知:
我的 Symfony 2 代码:
弃用通知:
从 2.8 版开始,不推荐通过字符串名称访问类型“sonata_type_model_autocomplete”,并将在 3.0 中删除。改用完全限定的类型类名称“Sonata\AdminBundle\Form\Type\ModelAutocompleteType”
因此,要与 Symfony 3 兼容:
但我得到这个错误:
可捕获的致命错误:传递给 Sonata\AdminBundle\Form\DataTransformer\ModelToIdPropertyTransformer::__construct() 的参数 1 必须实现接口 Sonata\AdminBundle\Model\ModelManagerInterface,给定 null,在 /vendor/sonata-project/admin-bundle/Form 中调用/Type/ModelAutocompleteType.php 在第 37 行并定义
因此,我必须传递一个 ModelManagerInterface 对象,而不是 null,但我在哪里可以找到它?
感谢您阅读