[英]implement generic generic interface in scala
從scala,我需要創建一個java對象,因為它有一個方法需要一個通用接口的參數
Java類
public class JavaTest<T> {
public List<T> add(IJavaTest<T> javaTest){
return null;
}
}
Java接口
public interface IJavaTest<T> {
String ss();
}
在scala中,我實現了這一點:
val javaTest = new JavaTest
class TMijavatest[T] extends IJavaTest[T] {
override def ss(): String = ""
}
val foo=new TMijavatest()
但是當我調用add方法時
javaTest.add(foo);
我在intellij中遇到此錯誤:類型不匹配,應為:IJavaTest [T],實際的TMijavatest [無]
有:
javaTest.add(foo.asInstanceOf);
它可以編譯我,但在執行時出現此錯誤:
服務器中發生意外錯誤。 由以下原因引起:java.lang.ClassCastException:my.pakage.Test $ TMijavatest $ 1無法轉換為scala.runtime.Nothing $
如果我像這樣生成foo對象:
val foo = new TMijavatest[String]
javaTest.add(foo);
我在intellij中遇到此錯誤:類型不匹配,應為:IJavaTest [T],實際的TMijavatest [String]
我該怎么做? 謝謝
您應該使用類型實例化JavaTest和TMijavatest
val javaTest = new JavaTest[String]
class TMijavatest[T] extends IJavaTest[T] {
override def ss(): String = ""
}
val foo = new TMijavatest[String]
javaTest.add(foo)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.