Scala:类在将类传递给另一个类时需要类型参数?

时间:2015-07-10 17:29:35

标签: scala runnable apache-kafka kafka-consumer-api

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

PencilTool.prototype._isBetween = function(a,b,c){
    //test if a, b and c are aligned
    var crossproduct = (c.y - a.y) * (b.x - a.x) - (c.x - a.x) * (b.y - a.y);
    if(Math.abs(crossproduct) !== 0){ return false; }

    var dotproduct = (c.x - a.x) * (b.x - a.x) + (c.y - a.y)*(b.y - a.y)
    if(dotproduct < 0){ return false }

    var squaredlengthba = (b.x - a.x)*(b.x - a.x) + (b.y - a.y)*(b.y - a.y);
    if(dotproduct > squaredlengthba){ return false; }

    return true;
}

这是班级。问题必须与如何将参数传递给Scala中的类有关,但我仍然是Scala的新手。

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

1 个答案:

答案 0 :(得分:0)

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