代码之家  ›  专栏  ›  技术社区  ›  Alexander Kuznetsov

在Scala中用泛型创建Java匿名类的问题

  •  2
  • Alexander Kuznetsov  · 技术社区  · 14 年前

    例如,我有以下Java接口

    public interface Test<T,M> {
           public M get(T t);
    }
    

    如果我用这个接口创建Java中的AANYMOYS类

    val t = new Test[Int,Boolean](){
         def get(t: Boolean) = 0
    }
    

    我有以下错误

    scala.scala:15:错误: scal.test.example.test不采用 类型参数val t=new test[int,boolean]()。{

    2 回复  |  直到 14 年前
        1
  •  4
  •   Randall Schulz    14 年前

    将scala代码封闭在对象中,以便单独编译和更正类型参数的顺序:

    object TestI {
        val t = new Test[Boolean,Int]() {
            def get(t: Boolean) = 0
        }
    }
    

    …我没有任何编译错误。

        2
  •  2
  •   Alexander Kuznetsov    14 年前

    它是旧版本的scala 2.6.1。它是默认情况下从Maven Archity为scala项目安装的。现在我把版本升级到2.8.0,问题解决了。对于旧版本,您需要了解Java版本。