Class 新建一个scala类,另一个类为param meet“;“类型不匹配”;错误
我有两门课,一门是classbase,另一门是testClass 新建一个scala类,另一个类为param meet“;“类型不匹配”;错误,class,scala,Class,Scala,我有两门课,一门是classbase,另一门是test 类测试有两个参数 在运行代码之后,我得到了这样一个类型不匹配的错误 class base[T] () { def tell(t: T) { } } class test[T](a: T, b: base[T]){ b.tell("sssssssssss") } val b = new base[String]() val s:String = "12354555" val t = new test[String](s,
类测试有两个参数 在运行代码之后,我得到了这样一个类型不匹配的错误
class base[T] () {
def tell(t: T) { }
}
class test[T](a: T, b: base[T]){
b.tell("sssssssssss")
}
val b = new base[String]()
val s:String = "12354555"
val t = new test[String](s, b)
在我的代码中,已经定义了一个类型Stringb,但是在classtest中,b的类型是T在编译时刻classtest中的类型变量T不是String,但是您尝试用String调用它 两种可能的解决办法: a) 为参数T设置下限
error: type mismatch;
found : String("sssssssssss")
required: T
b.tell("sssssssssss")
^
one error found
b) 或更改prameter的类型b:
class test[T >: String](a: T, b: base[T]){
b.tell("sssssssssss")
}
在编译时,类test中的类型变量T不是String,但您尝试用String调用它 两种可能的解决办法: a) 为参数T设置下限
error: type mismatch;
found : String("sssssssssss")
required: T
b.tell("sssssssssss")
^
one error found
b) 或更改prameter的类型b:
class test[T >: String](a: T, b: base[T]){
b.tell("sssssssssss")
}
在您给出的示例中,T是一个字符串,但它不一定是。它可能是任何东西
无论如何,都要将字符串传递给b.tell(),但是b.tell()的参数类型不能保证是字符串。在您给出的示例中,T是字符串,但不一定是字符串。它可能是任何东西
不管怎样,都要将字符串传递给b.tell(),但是b.tell()的参数类型不能保证是字符串。thx。这真的很有效。我的代码是从twitter的Scala School并发章节中提取的。在本章末尾,有一个制作人/消费者演示。类“类生产者[T](路径:字符串,队列:BlockingQueue[T])val queue=new LinkedBlockingQueue[String](),“queue”是“BlokingQueue[T]”的实例,然后将字符串类型“queue”作为参数传递给生产者。我运行代码。”queue.put(line)'调用类型未匹配错误。所以教程的演示有一个bug?你是对的,它是混凝土制作人
类制作人[T]
中的bug。这真的很有效。我的代码是从twitter的Scala School并发章节中提取的。在本章末尾,有一个制作人/消费者演示。类“类生产者[T](路径:字符串,队列:BlockingQueue[T])val queue=new LinkedBlockingQueue[String](),“queue”是“BlokingQueue[T]”的实例,然后将字符串类型“queue”作为参数传递给生产者。我运行代码。”queue.put(line)'调用类型未匹配错误。所以教程的演示有一个bug?你是对的,它是混凝土制作人类制作人[T]
中的bug。