2010-06-29 5 views
1

J'ai la classe suivante:erreur constructeur Surchargé

class Step(kind:TipoStep.Value, 
      message:String = "", 
      study:List[Formula] = List(), 
      lastAdd:Set[Formula] = Set(), 
      lastDel:Set[Formula] = Set(), 
      add:List[Formula] = List(), 
      del:List[Formula] = List() 
      ) { 

    def this(step:Step, 
      kind:TipoStep.Value, 
      message:String = "", 
      study:List[Formula] = List(), 
      lastAdd:Set[Formula] = Set(), 
      lastDel:Set[Formula] = Set()) = this(kind, message, study, lastAdd, lastDel, step.getAllAdd, step.getAllDel) 

/* ... */ 
} 

compilateur me montre erreur folloging:

error: ambiguous reference to overloaded definition, 
both method init$default$5 in object Step of type => scala.collection.mutable.Set[org.lorea.pltl.formula.Formula] 
and method init$default$5 in object Step of type => scala.collection.mutable.Set[org.lorea.pltl.formula.Formula] 
match expected type scala.collection.mutable.Set[org.lorea.pltl.formula.Formula] 
step = new Step(TipoStep.R_fixpoint, s, List(c1, c2), news) 

Répondre

3

La présence de paramètres formels multiples, comme typées et l'utilisation de valeurs par défaut dans votre Le constructeur principal rend ambigu le paramètre de constructeur formel qui doit être défini par défaut et qui a assigné le paramètre réel. Une manière de le résoudre consiste à utiliser des assignations de paramètres nommées dans l'appel du constructeur.

+0

Cette solution ne fonctionne pas. – barroco

+0

@ isola009: Vous allez devoir en dire plus. Qu'avez-vous spécifiquement essayé? Quelle erreur a résulté? –

Questions connexes