例如假设我有

interface ICar {...}
class Car implements ICar {...}

在 Scala 我想做
new MyScalaClass with ICar

但是使用 ICar 的 java 实现,即 Car。这样做的语法是什么?

最佳答案

您可以使用对象聚合,但将聚合封装在特征中。假设您有以下 Java 代码:

interface ICar {
  public void brake();
}
public class Car implements ICar {
  public void brake() { System.out.println("BRAKE !!!"); }
}

然后您可以定义以下 Scala 特征:
trait HasCar { self: ICar =>
  private val car = new Car
  def brake() = car.brake()
}

最后,您可以将您需要的所有内容混合到您的类(class)中:
 val c = new MyScalaClass extends ICar with HasCar
 c.brake // prints "BRAKE !!!"

关于scala - 在 Scala 中,如何将 java 接口(interface)混合到 Scala 代码中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7184881/

10-10 11:43