传递类型参数进行实例化

2023-12-01

为什么 scala 编译器不挖掘这个:

class Clazz

class Foo[C <: Clazz] {
  val foo = new C  
}

class type required but C found
[error]   val a = new C
[error]               ^

相关问题-如何摆脱:需要类类型但找到了T


这是一个在 Java 中也会发生的经典泛型问题 - 您无法创建泛型类型变量的实例。然而,您可以在 Scala 中解决此问题,即向捕获运行时类型的类型参数引入类型证据:

class Foo[C <: Clazz](implicit ct: ClassTag[C]) {
    val foo = ct.runtimeClass.newInstance
}

请注意,这仅在类具有不带任何参数的构造函数时才有效。由于该参数是隐式的,因此在调用 Foo 构造函数时不需要传递它:

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

传递类型参数进行实例化 的相关文章

随机推荐

  • 为什么在Java的Object类中声明wait()和notify()?

    为什么是wait and notify 中声明的方法Object类 而不是Thread class 因为 您等待给定的对象 或者具体来说 它的监视器 来使用此功能 我认为您可能误解了这些方法的工作原理 它们不只是处于线程粒度级别 即not只
  • IndentationError:需要一个缩进块[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 有人可以告诉我在这个 Python 代码示例中我做错了什么吗 for i in range len Adapters print Adapters i 我正在尝试列出 打印数
  • Webdriver selenium,java.lang.NullPointerException,尝试查找 Webelement 时

    编写了完整的代码来从 Excel 获取数据并登录 Gmail 但在尝试这样做时 我的浏览器已打开 所需的页面也已打开 并且登录 ID 已从 Excel 中选取并存储在变量 sUsername 中 但无法将 xpath 定位为 element
  • R geom_point 和 ggmap

    我想在 R 中绘制一个 ggmap 例如澳大利亚的 ggmap 并有一层数据点 其标记对应于以下数据指定的大小 sitename lat lon sitenum Sydney 34 151 1 Melbourne 37 144 4 Adel
  • Mongodb 节省了一天时间 - 时区问题

    我以 MM DD YYYY 的角度格式发布日期 但是当它保存在 Mongodb 中时 它会少一天保存 ISO 格式 我正在使用 MEAN 堆栈进行开发 例如 来自角度 10 03 2016 mongodb ISODate 2016 10 0
  • 从 python 子进程运行 linux grep 命令

    我知道已经有关于如何在 python 中使用子进程来运行 linux 命令的帖子 但我只是无法获得正确的语法 请帮忙 这是我需要运行的命令 sbin ifconfig eth1 grep inet addr awk F print 2 aw
  • mysql 检查数字是否在逗号分隔列表中

    我有一个这样的表 UID int NUMBERS blob 1 1 13 15 20 2 3 10 15 20 3 3 15 我想测试 3 和 15 是否在名为 NUMBERS 的 blob 中 并且可以看到LIKE 不能使用 仅选择 ID
  • 合并2个没有重复键的数组

    我有两个如下所示的数组 想要将它们合并在一起 而不是将重复的键放入新数组中 array1 Array 0 gt Array a gt Array p gt Array a gt 1 a s gt Array p gt Array o gt
  • Type.GetType("namespace.a.b.ClassName") 返回 null

    这段代码 Type GetType namespace a b ClassName returns null 我的用途是 using namespace a b 该类型存在 它位于不同的类库中 我需要通过以字符串形式给出的名称来获取它 Ty
  • 如何快速检测哪个图像被点击

    我在 ViewController 上创建了 6 个 UIImageView 稍后我将向所有这些视图添加 TapGestureRecognizer 我想让它根据单击的图像 另一个 ViewController 将打开并显示某些信息 为此 我
  • Sql Server Ce 3.5 身份插入

    Sql Server CE 中的标识列出现问题 使用服务器资源管理器时 在VS2008中 执行以下脚本 SET IDENTITY INSERT testTable ON 插入 testTable id name 值 1 Something
  • 如何限制创建的Thread对象的数量?

    我想在下面的代码中限制数量class f同时运行的对象 即限制同时工作的线程数量 我怎样才能做到这一点 usr bin env python import random import time from threading import T
  • 线程“main”java.sql.SQLException中的异常:靠近“s”:语法错误

    我编写了一个程序 用单词列表填充数据库 问题是 每次我尝试运行代码时 它都会抛出 线程 main java sql SQLException中的异常 接近 s 语法错误 我意识到这个论坛上也有人提出了类似的问题 但在我的代码上下文中我无法纠
  • CardView突然变黑了

    我有一个问题CardView in the RecyclerView My CardView突然变黑了 我的RatingBar变成蓝色 我正在使用InfiniteRecyclerView但将其改为简单的RecyclerView没有影响 我可
  • 在Python中重新打开文件?

    假设我有这个简单的 python 脚本 file open C some text txt print file readlines print file readlines 运行时 第一个打印会打印包含文件文本的列表 而第二个打印会打印空
  • pheatmap 中缺少注释和颜色

    使用 pheatmap R 包 我需要制作带有自定义颜色集注释的热图 我使用以下代码 Make a matrix mat lt replicate 23 rnorm 23 colnames mat lt c 1 2 3plus3reseq
  • Material-UI Button 组件如何推断传递给“component” prop 的组件的 props?

    谁能解释一下 Material UI 如何扩展其 propsButton如果我在component prop interface MyLinkProps extends ButtonBaseProps someRandomProp stri
  • 使用字典将 xml 反序列化为对象

    这是我的班级结构 class DataItem public string Id get set public string Type get set private Dictionary
  • 前瞻和非捕获正则表达式

    我试图将 字符之前的电子邮件地址的本地部分与 LOCAL RE NOTQUOTED w alphanumeric and special chars but no dot at beginning w alphanumeric and sp
  • 传递类型参数进行实例化

    为什么 scala 编译器不挖掘这个 class Clazz class Foo C lt Clazz val foo new C class type required but C found error val a new C erro