Scala:class 在将 class 传递给另一个 class 时采用类型参数?
Scala: class takes type parameters when passing a class to another class?
我正在尝试创建一个可运行的 class 以与线程一起使用。 class 的目的是采用 KafkaStream 并将函数应用于流中的每条消息,但是当我尝试将流传递给 class 时,我得到以下信息编译器错误:“scala:45: class KafkaStream 采用类型参数”。
class streamOperator extends Runnable {
def run(f: String => Any, stream: KafkaStream) {
for (messageAndTopic <- stream) {
var message = new String(messageAndTopic.message)
f(message)
}
}
}
这里是class。这个问题一定与如何在 Scala 中将参数传递给 class 有关,但我对 Scala 还是个新手。
此外,是否可以使函数可运行?我认为传递给函数比 class.
更容易
如评论中所建议的那样,解决方案是传递 KafkaStream[?]。在这种情况下?是 KafkaStream[Array[Byte], Array[Byte]]
。我认为 KafkaStream[T]
也可以,但我认为如果可能的话最好传递实际类型。
我正在尝试创建一个可运行的 class 以与线程一起使用。 class 的目的是采用 KafkaStream 并将函数应用于流中的每条消息,但是当我尝试将流传递给 class 时,我得到以下信息编译器错误:“scala:45: class KafkaStream 采用类型参数”。
class streamOperator extends Runnable {
def run(f: String => Any, stream: KafkaStream) {
for (messageAndTopic <- stream) {
var message = new String(messageAndTopic.message)
f(message)
}
}
}
这里是class。这个问题一定与如何在 Scala 中将参数传递给 class 有关,但我对 Scala 还是个新手。
此外,是否可以使函数可运行?我认为传递给函数比 class.
更容易如评论中所建议的那样,解决方案是传递 KafkaStream[?]。在这种情况下?是 KafkaStream[Array[Byte], Array[Byte]]
。我认为 KafkaStream[T]
也可以,但我认为如果可能的话最好传递实际类型。