scala - 如何禁用 Scala 警告“无法在运行时检查此类型测试中的外部引用”
问题描述
我理解警告“无法在运行时检查此类型测试中的外部引用”的含义(如果最终案例类未在类本身中使用,则它缺少其“外部”指针)。尽管如此,我还是觉得这个警告非常烦人,因为即使我什至不匹配类型也会显示它,如下面的代码所示:
object X {
class B {
final case class A(a: Int)
}
def main(arg: Array[String]) = {
}
}
case class
除了发出not之外,我如何禁用此警告final
?@unchecked
在定义之前使用case class
没有帮助。
解决方案
也许作为一种解决方法,我们可以通过将构造函数设为私有来使案例类生效
class B {
case class X private (s: String)
}
防止继承
class C extends X("") // Error
同时仍然允许由于公共apply
在同伴中的建设
(new B).X("") // OK
dotty中似乎不存在该错误,因此一旦 Scala 3 发布,应该可以恢复到最终案例类(可能使用正则表达式替换)。
推荐阅读
- django - 如何在 django 中自动更新数据?
- jquery - 带有复选框的多个下拉菜单
- mysql - 如何同时更新多条记录?
- docker - AZEROTHCORE - ./bin/acore-docker-build 脚本返回“无法在本地找到图像 'acbuild:latest'
- python - 用 NaN 替换数据框中的值列表
- java - “java.lang.Class.getMethod()”方法中“parameterTypes”的解释和正确格式
- c# - 注册控制器和托管服务时使用 InstancePerLifetimeScope 或 InstancePerDependency?
- excel - 如何使用 VBA 将我的图片放置在现有 powerpoint 幻灯片的幻灯片中心?
- python - Pygame TypeError: join() 参数必须是 str、bytes 或 os.PathLike 对象,而不是“Surface”
- javascript - d3.nest().entries() 中的方程有什么作用?