可堆叠特征模式可以与单例对象一起使用吗?

2023-11-26

我想使用可堆叠特质模式使用单例对象,但我似乎找不到如何让编译器满意:

abstract class Pr {
  def pr()
}

trait PrePostPr extends Pr {
  abstract override def pr() {
    println("prepr")
    super.pr()
    println("postpr")
  }
}

object Foo extends Pr with PrePostPr {
  def pr() = println("Foo")
}

尝试在 repl 中对此进行评估会产生以下错误:

<console>:10: error: overriding method pr in trait PrePostPr of type ()Unit;
 method pr needs `override' modifier
         def pr() = println("Foo")

可以,但是像这样:

abstract class Pr {
  def pr()
}

trait PrePostPr extends Pr {
  abstract override def pr() {
    println("prepr")
    super.pr()
    println("postpr")
  }
}

class ImplPr extends Pr {
  def pr() = println("Foo")
}

object Foo extends ImplPr with PrePostPr

该实现必须存在于超类/超特征之一中。抽象修改特征必须位于继承列表中具有实现的类/特征之后。

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

可堆叠特征模式可以与单例对象一起使用吗? 的相关文章

随机推荐

  • 使用“--without-heartbeat”标志运行的芹菜工作人员对应用程序的影响

    讨论here高层讨论了与 celery 工人一起运行的一些影响 without hearbeat without gossip without mingle flags 我想知道是否 without heartbeat标志会影响工作人员检测
  • Python Statsmodels Mixedlm(混合线性模型)随机效应

    我对 Statsmodels Mixedlm 的输出有点困惑 希望有人能解释一下 我有一个大的单户住宅数据集 包括每个房产的前两次销售价格 销售日期 我已经对整个数据集进行了地理编码 并获取了每个属性的海拔 我试图了解不同城市之间海拔与房价
  • Runtime.maxMemory() 和 -Xmx

    我期望 Runtime maxMemory 准确返回 Xmx 但它返回一个较低的值 那么它返回什么呢 Xmx 标志的解释取决于 VM 一些虚拟机 包括 HotSpot 对有效值施加下限 这个选项 CCC 提案不应提及 Xmx 标志 这样 参
  • 在 Windows 版 Safari 中启用调试菜单

    我在 Safari 3 中找到了很多关于此问题的信息 但在版本 4 中情况明显发生了变化 我只是碰巧通过实验偶然发现了答案 因此将其发布在这里供其他人使用 在 Windows 版 Safari 5 1 7 中进行检查 点击右上角Settin
  • 正确设置 3d 图中的轴限制[重复]

    这个问题在这里已经有答案了 我在 matplotlib 中为 3d 图设置限制时遇到问题 我发现无论我如何设置 x y 和 z 轴的限制 3dplots 的绘图例程都会添加额外的缓冲区 from mpl toolkits mplot3d i
  • 在linux上用什么来使python程序可执行

    我刚刚安装了一个linux系统 Kubuntu 想知道是否有一个程序可以使python程序在linux上可执行 只需将其放在脚本的第一行 usr bin env python 使文件可执行 chmod x myfile py 执行与 myf
  • 我是否应该在统一缓冲区或着色器存储缓冲区对象内使用“vec3”?

    The vec3type 是一个非常好的类型 它只占用3个浮点数 而我有只需要3个浮点数的数据 我想在 UBO 和 或 SSBO 的结构中使用一个 layout std140 uniform UBO vec4 data1 vec3 data
  • LDAP授权

    我开始使用 LDAP 为某些现有系统实现授权和身份验证机制 在开发阶段 我面临着一个艰难的设计决策 用户角色应该存储在哪里 如果我使用 RDBMS 看起来会有三个表 user role and 用户角色映射角色和用户 请建议可用的解决方案
  • 有条件地在数组中添加元素(...)

    我的系统将配置数组发送到如下函数 callThatFunction array k1 gt v1 k2 gt v2 kn vn 我想根据某些情况创建一个键值对 我可以在不为数组创建变量的情况下执行此操作 这会破坏其他人创建的干净配置语法 吗
  • 世博会:“此环境中不支持身份验证/操作”

    我开发了一个react native expo 移动应用程序并尝试使用google帐户登录firebase 但出现错误 auth operation not supported in this enviroment 此应用程序运行的环境不支
  • 让源映射与评估的代码一起使用

    我有一个构建脚本 它通过 uglifyjs 运行我的所有代码 执行一系列奇特的缓存操作 并最终运行eval code 在一些 JavaScript 文件上 我正在尝试启动并运行整个过程源地图 但只要我使用 我似乎就无法让它工作eval 如果
  • AVSampleBufferDisplayLayer 如何显示 H.264

    我想分享我几天来学到的知识 没有太多可找到的 我仍然对声音感到困惑 欢迎提出意见和建议 这是我的代码片段 声明一下 property nonatomic retain AVSampleBufferDisplayLayer videoLaye
  • Html5 占位符与 .NET MVC 3 Razor 编辑器用于扩展?

    有没有办法写Html5 占位符使用 Html EditorFor 或者我应该只使用 TextBoxFor 扩展 即 Html TextBoxFor model gt model Title new placeholder Enter tit
  • 在 PowerShell 中对非常大的文本文件进行排序

    我有标准的 Apache 日志文件 大小在 500Mb 到 2GB 之间 我需要对其中的行进行排序 每行以日期 yyyy MM dd hh mm ss 开头 因此无需进行排序处理 我想到的最简单 最明显的事情是 Get Content un
  • 在数据框上滚动函数

    我有以下数据框C gt gt gt C a b c 2011 01 01 0 0 NaN 2011 01 02 41 12 NaN 2011 01 03 82 24 NaN 2011 01 04 123 36 NaN 2011 01 05
  • C++ 双地址运算符? (&&)

    我正在阅读STL源代码 但我不知道什么 地址运算符应该做的 这是来自的代码示例stl vector h vector operator vector x lt Note double ampersands here NB DR 675 th
  • 在应用程序关闭/退出时停止所有已启动的服务

    当用户点击主页按钮时是否可以停止所有启动的服务 I use startService new Intent ClassName this ClassName2 class stopService new Intent ClassName t
  • opencv:两个3D点云之间的刚性变换

    我有两个 3D 点云 我想使用 opencv 来查找刚性变换矩阵 平移 旋转 所有 3 个轴之间的恒定缩放 我找到了一个估计刚性变换函数 但显然它仅适用于 2D 点 另外 我还发现估计仿射3D 但似乎不支持刚性变换模式 我需要编写自己的刚性
  • bind:toObject:withKeyPath:options: 是单向绑定吗?

    我有两个窗口 窗口A是从NIB加载的 窗口 B 是通过编程创建的 两个窗口都有一个NStextView 窗口A中textview的attributedString绑定到属性text一个模型的using IB 而窗口B中textview的at
  • 可堆叠特征模式可以与单例对象一起使用吗?

    我想使用可堆叠特质模式使用单例对象 但我似乎找不到如何让编译器满意 abstract class Pr def pr trait PrePostPr extends Pr abstract override def pr println p