【问题标题】:How to override Java's ArrayList's addAll(Collection<? extends E> c) method in Scala? Naive approach does not compile如何在 Scala 中覆盖 Java 的 ArrayList 的 addAll(Collection<? extends E> c) 方法?天真的方法不编译
【发布时间】:2014-03-11 16:42:30
【问题描述】:

MyList 中,我尝试覆盖ArrayListaddAll 方法(图2)。 但它不能编译(图3)。

如何解决这个问题?

为什么类型不兼容?

编辑:

这里是MyList 文本:

import java.util
import java.util.ArrayList

class MyList[T] extends ArrayList[T]{
  override def toString()="MyList"

  override def add(o:T)= {
    println ("adding "+o)
    super.add(o)
  }

  override def addAll(c: util.Collection[_ <: T])
  {
    println("addAll"+c)
    super.addAll(c)
  }

}

【问题讨论】:

    标签: java scala collections arraylist overriding


    【解决方案1】:

    您忘记了=。应该是:

    override def addAll(c: util.Collection[_ <: T])= {
        println("addAll"+c)
        super.addAll(c)
    }
    

    【讨论】:

    • @jhegedus 不客气 :) 我有时也会遇到这种情况,拉扯我的头发看看我的代码有什么问题,但就是这样!
    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 2011-05-13
    • 2017-07-03
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多