小编puu*_*eli的帖子

Scala类实现两个Java接口 - 如何实现?

我刚开始学习Scala,现在我想知道如何用一个Scala类实现两个不同的Java接口?假设我有以下用Java编写的接口

public interface EventRecorder {
    public void abstract record(Event event); 
}

public interface TransactionCapable {
    public void abstract commit();
}
Run Code Online (Sandbox Code Playgroud)

但是Scala类一次只能扩展一个类.我怎样才能拥有可以同时履行这两个合同的Scala类?我是否必须将这些界面映射到特征中?

注意,我的Scala类将在Java中使用,因为我试图将用Scala编写的新功能注入到现有的Java应用程序中.现有框架期望两个接口合同都得到满足.

java scala interface

27
推荐指数
1
解决办法
2万
查看次数

使用setter函数实现注入

我正在尝试将Scala用作现有Java应用程序的一部分,现在我遇到了一个使用setter方法注入的依赖项的问题(在这部分代码中没有DI框架).如何以Scala方式处理?

在Scala中val,var需要在声明时进行初始化,但我不能这样做,因为Java setter会注入实现某个接口的对象,并且接口是抽象的,无法实例化.

class ScalaLogic {
  var service  // How to initialize?

  def setService (srv: OutputService) = {
  service = srv
}
Run Code Online (Sandbox Code Playgroud)

有没有办法初始化,var service以便我以后可以为其分配依赖?它应该是词法范围,以便在整个班级中可见.

java dependency-injection scala

1
推荐指数
1
解决办法
639
查看次数

标签 统计

java ×2

scala ×2

dependency-injection ×1

interface ×1