无法在Scala case类中定义名为“wait”的属性

无法在Scala case类中定义名为“wait”的属性,scala,Scala,我试图在案例类中定义属性wait,但是,它不断给我一个错误: 重写()单元类型的类对象中的方法wait [错误]值等待无法覆盖最终成员 [错误]最终案例类Foo(等待:Bar) 看起来wait是基类中的一个方法,尽管我的case类没有继承任何东西。有没有办法定义一个名为wait的类变量 您的类隐式继承自AnyRef/对象,因为每个引用类型都需要是AnyRef的子类型。您可以通过定义Foo extends AnyVal来避免这种情况,但您确实不想这样做,除非您知道,因为您的类不再是普通类。只需将您

我试图在
案例
中定义属性
wait
,但是,它不断给我一个错误:

重写()单元类型的类对象中的方法wait
[错误]值等待无法覆盖最终成员
[错误]最终案例类Foo(等待:Bar)


看起来
wait
是基类中的一个方法,尽管我的case类没有继承任何东西。有没有办法定义一个名为
wait
的类变量

您的类隐式继承自
AnyRef
/
对象,因为每个引用类型都需要是
AnyRef
的子类型。您可以通过定义
Foo extends AnyVal
来避免这种情况,但您确实不想这样做,除非您知道,因为您的类不再是普通类。只需将您的方法命名为其他方法


wait
是一个并发原语。它位于
AnyRef
中,仅仅是因为Java决定将它放在
Object
中(也就是说,应该归咎于Java,而不是Scala)。在
synchronized
块内调用时,调用线程将进入睡眠状态,直到被在同一对象上调用
notify
All
)的其他线程唤醒。

否,公共字段名与的方法相同时,Scala编译器无法处理此问题:

  • 通知
  • 通知所有
  • 等等
因为当Scala编译器满足公共字段时,它将生成默认的getter,例如,它将生成:

  public java.lang.String wait()
这将导致的等待方法出现名称冲突问题。但现在看来,编译器无法处理此问题

  public java.lang.String wait()