2016-07-27 1 views
0

Problème de compilation qui ne semble pas simple à résoudre. (Là encore tout est facile une fois que vous savez comment ...)Lecture 2.5.x - objet org.joda.time.Duration n'est pas une valeur

import org.joda.time._ 
import org.joda.time.format._ 
import org.joda.time.convert._ 

val durationLabel = org.joda.time.Duration(duration).toPeriod() 

Pourtant, je reçois cette erreur:

object org.joda.time.Duration is not a value 

Cette question pose la même chose, mais il est fix ne contribue pas du tout: Object is not a value error in scala

réponse de cette question ne semble pas aider non plus: Why is Scala saying it can’t see members of org.joda.time.Period? ni ne celui-ci: Type value plusHours is not a member of org.joda.time.DateTime à moins que je suis d'être extrêmement dense.

Je crois que jodatime est « construit en » quelque sorte que quand j'ajoute ce qui suit à build.sbt

"org.joda" % "joda-convert" % "1.8.1", 

il ne fait rien - rien à redire et aucun nouveau téléchargements, même après un clean.

Alors, qu'est-ce qui me manque?

Répondre

1

Ce

val durationLabel = new org.joda.time.Duration(duration).toPeriod()

devrait fonctionner.

object s dans Scala définissent des instances uniques d'une classe

Il n'y a pas correspondant construire en Java, donc vous aurez besoin d'utiliser le mot-clé new instancier votre instance de Duration.

+0

Wow - une autre erreur de style scala "blue fairy snows the angel dust" Je peux enfin comprendre et ajouter au traducteur de bablefish :) Je présume que c'est ce que tente de faire nscala-time: https: // github .com/nscala-time/nscala-temps. Merci! – Techmag

+0

Oui. J'ai oublié de suggérer d'utiliser 'nscala-time'. Je ne savais pas que tu voulais joda. – mfirry