我正在尝试创建一个可用于线程的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的新手。
另外可以使函数可运行吗?我认为传递给函数而不是类更容易。
答案 0 :(得分:0)
正如评论中所建议的那样,解决方案是通过KafkaStream [?]。在这种情况下?是KafkaStream[Array[Byte], Array[Byte]]
。我认为KafkaStream[T]
也会起作用,但我认为如果可能的话,最好传递实际类型。