代码之家  ›  专栏  ›  技术社区  ›  VNourdin

Scala软件包问题

  •  1
  • VNourdin  · 技术社区  · 7 年前

    我有一个 Words 包含单词类型的包( Noun , Verb , Adjective ...) 但尽管我进口了 Words._ 我的IDE发现每个类都很好,我有一个错误:

    Error:(11, 40) type mismatch;
    found   : Word (in Words) 
    required: Word (in <empty>) 
      val adj: Word = WordFactory.produce("big")
    

    问题是,我的包裹里什么都没有(在 <empty> 包装)。
    我正在使用IntelliJ Idea CE。

    test("Adjective") {
        val expected: Adjective = Adjective("big", "big", "m", "sp")
        val test: Word = WordFactory.produce("big")
        assert(test == expected)
    }
    

    如果我澄清 val test: Words.Word 我的测试失败:

    Adjective(big,big,m,sp) did not equal Adjective(big,big,m,sp)
    ScalaTestFailureLocation: WordFactoryTests at (WordFactoryTests.scala:13)
    Expected :Adjective(big,big,m,sp)
    Actual   :Adjective(big,big,m,sp)
    

    形容词
    作为参考,我还有其他测试(测试其他用例类,如 名词 )它们是相同的,但效果很好。


    问题似乎与scalatest无关,即使在main中,我也有错误(与 <空(>); ).

    这是我的文件 Word.scala :

    package Words
    
    abstract class Word() {
      val correctWriting: String
      val lemma: String
      var currentWriting: String = correctWriting
    
      def isCounterfeited: Boolean = this.currentWriting != this.correctWriting
    
      def counterfeit()
    }
    

    Adjective.scala :

    package Words
    
    case class Adjective(correctWriting: String, lemma: String, gender: String, number: String) extends Word {
      override def counterfeit: Unit = Counterfeiters.Adjective.counterfeit(this)
    }
    

    完整代码已打开 my GitHub .

    1 回复  |  直到 7 年前
        1
  •  0
  •   VNourdin    7 年前

    最后,我重新命名了我的项目,它解决了这个问题。奇怪的IDE东西,我以前在没有包的情况下工作,包中的重组破坏了一些东西。
    我你面临着类似的问题,尝试你清洁你的IDE!