代码之家  ›  专栏  ›  技术社区  ›  Devayan Sarkar

[TextOutputFormat]的类在Scala中需要参数,但在没有任何参数的Java中工作良好(TextOutputFormat.class)

  •  -1
  • Devayan Sarkar  · 技术社区  · 7 年前

    当用Java编写一个简单的Map Reduce程序时,下面这行可以很好地工作。

    job.setOutputFormatClass(TextOutputFormat.class)    
    

    但Scala中同样需要参数。

    job.setOutputFormatClass(classOf[TextOutputFormat[<param>, <param>]]) 
    

    为什么表现不同? 我有什么遗漏吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Alexey Romanov    7 年前

    在Java中, TextOutputFormat.class 是特殊语法。在Scala, classOf[...] TextOutputFormat 它本身不是一个类型(在Java中称为原始类型,但它不是您通常应该使用的;Scala不支持原始类型)。写 classOf[TextOutputFormat[_, _]]