为什么 classOf[A.type] 无法编译?

2024-01-31

的签名Predef.classOf https://github.com/scala/scala/blob/bda011524f7619b61b4fcc8172f088d2445e947e/src/library/scala/Predef.scala#L122 is

def classOf[T]: Class[T]

所以模拟上面的签名

object Foo
def f[T]: Class[T] = null

为什么下面的编译

f[Foo.type]         // ok

但Scala中出现以下错误

classOf[Foo.type]   // error: class type required but Foo.type found

编辑:在 Scala 2.13.4 及更高版本中,上述内容确实有效(如评论中指出的),但是在以下场景中仍然会发生类似的编译时错误

val foo: Foo.type = Foo

f[foo.type]         // ok              
classOf[foo.type]   // error: class type required but foo.type found    

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 classOf[A.type] 无法编译? 的相关文章

随机推荐

  • Berkeley DB 的最佳 Python 模块? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 根据 Python 2 6 5 文档 1 bsddb 模块已在 Python 3 0 中被弃用并删除
  • 为我的 Android 应用程序选择正确的 API 级别

    我目前有一个针对 android 2 3 api level 10 的应用程序 但我认为probably使用 android 2 1 2 2 或更早版本的人甚至无法在市场上看到该应用程序 所以我认为使用 api level 3 是最好的选择
  • 如何使用 usingColumns 连接 Spark 中的嵌套列

    我有 2 个数据框想要加入 DF1 root myStruct struct nullable true id string nullable true region long nullable true first name string
  • 如何使用 Laravel 管理 OAuth 刷新令牌?

    Socialiate 插件在 Laravel 中提供了 OAuth 的实现 但它的设计似乎主要是为了让他们不必在您自己的网站上创建用户帐户 我正在制作一个帮助管理他们的 Youtube 帐户的应用程序 这意味着身份验证请求的范围更广泛 很容
  • kinect C# 从保存的数据中绘制和移动骨架

    我想要做的是从保存的数据中绘制骨架并为其设置动画 就像我们可以对传感器流所做的那样 所以我有每个关节的 x y 和 z 值 我搜索了很多 但找不到任何可以帮助我的东西 我可以将数据转换为关节集合 将其与骨架关联 但是然后呢 我不知道如何将骨
  • 在 python 中向 csv 文件添加新列

    我正在尝试将一列添加到 csv 文件中 该文件组合了其他两列中的字符串 每当我尝试此操作时 我要么得到仅包含新列的输出 csv 要么得到包含所有原始数据而不是新列的输出 这是我到目前为止所拥有的 with open filename as
  • Vuejs上下文中chartjs的图表闪烁和getcontext错误

    您好 我正在尝试通过调用 API 使用 Chartjs 显示不同的图表 下面的代码显示了我如何格式化chart vue 图表 vue
  • Python 是否有与 Memcpy 等效的工具

    我正在尝试移植一些 C 代码 但由于我尝试使用 ctypes 不起作用 使用 memcpy 我真的陷入困境 我希望找到一种使用 memcpy 等效函数的 python 方法 有任何想法吗 这是我尝试移植的 C 代码示例 i l 5 t ht
  • 类型错误:预期的字符串或类似字节的对象 pandas 变量

    我有这样的数据集 import pandas as pd df pd DataFrame word abs e learning abs e learning abs e learning abs elearning 我想要得到 word
  • 在 Boost Test 框架中测试断言

    我使用 Boost Test 框架对我的 C 代码进行单元测试 并想知道是否可以测试函数是否会断言 是的 听起来有点奇怪 但请耐心听我说 我的许多函数在输入时检查输入参数 断言它们是否无效 对此进行测试将很有用 例如 void MyFunc
  • 如何在不使用 typeid/RTTI 的情况下确定实际对象的类型

    我有一个类层次结构 其中子类派生自父类 在一个地方 我需要将任何类型的对象存储 队列 到列表 list Parent 中 然后从该列表中检索对象 存储时 我存储的是指针 它指向最顶层的父类 检索时 我需要了解它实际上是哪个子对象 以便能够通
  • Django Rest Framework 序列化器单独渲染表单

    我知道如何将序列化器的形式作为一个整体呈现 但我不知道如何单独呈现它 类似于模板上的 django 表单 form name form name errors 我当前的文件和代码如下 模型 py Create your models her
  • HTML 不再在 JLabel(和其他组件)中工作

    我有一个我编写的java小程序 并且已经运行了很长一段时间 在小程序中 我有一堆在文本内容中使用 HTML 的 JLabel 这是允许的 并且已经工作多年 我使用 HTML 的主要原因是允许在 JLabels 中换行 问题 最近 包含 HT
  • 系统头文件/usr/include/i386_types.h错误

    我已经使用 C C 大约 7 个月了 目前正在尝试编写一小组线性代数程序 现在我正在尝试测试我的向量类 但收到错误消息 In file included from usr include machine types h 34 from us
  • Rails 4 博客 /:year/:month/:title 具有清晰的路由

    Rails 4 中还有另一种更简洁的方式来实现路由 例如 blog 2014 8 blog post title blog 2014 8 blog 2014 blog 2014 8 tags tag 1 tag 2 page 4 blog
  • X509Chain.Build()方法解释

    我想验证证书链 我得到了X509Certificate2集合并必须验证所有证书是否构建一条链 通常 为了验证证书链 我应该从叶证书中获取数字签名并检查它是否由根证书签名 but在 NET中我找不到从X509Certificate2目的 因此
  • 在 Ansible 即席命令中使用 Ansible 事实

    是否可以使用通常包含在中的内容ansible facts在 Ansible 即席命令中 例如 我有一个文件位于 tmp myFile在我所有的服务器上 我想做 ansible all i inventory file m fetch a s
  • Python语言-使用OOP求圆心

    class Point def init self initX initY Create a new point at the given coordinates self x initX self y initY def getX sel
  • 以管理员身份运行批处理文件 - Windows 7 - 从网络文件系统命令“运行方式”

    我需要设置程序安装程序的交付 该程序有一个program installer exe 和一个文件夹 我在创建安装程序时无法将其包含在安装程序中 因此 当用户需要安装该程序时 我通过邮件向他发送一个批处理文件 echo off if DEFI
  • 为什么 classOf[A.type] 无法编译?

    的签名Predef classOf https github com scala scala blob bda011524f7619b61b4fcc8172f088d2445e947e src library scala Predef sc