0

我正在尝试创建一个可运行的类以与线程一起使用。该类的目的是获取一个KafkaStream并将一个函数应用于通过该流的每条消息,但是当我尝试将流传递给该类时,我收到以下编译器错误:“scala:45: class KafkaStream take type参数”。

class streamOperator extends Runnable {
  def run(f: String => Any, stream: KafkaStream) {
    for (messageAndTopic <- stream) {
      var message = new String(messageAndTopic.message)
      f(message)
    }
  }
}

这是课程。这个问题一定与如何将参数传递给 Scala 中的类有关,但我对 Scala 还是很陌生。

另外是否可以使函数可运行?我认为传递给函数比传递给类更容易。

4

1 回答 1

0

正如评论中所建议的,解决方案是通过 KafkaStream[?]。在这种情况下?是KafkaStream[Array[Byte], Array[Byte]]。我认为KafkaStream[T]也可以,但我认为如果可能的话最好传递实际类型。

于 2015-07-15T22:12:45.730 回答