例如假设我有
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/