Ниже мой код Scala 11.12

val res= Config().getConfig(source_fields.toLowerCase).entrySet()
    println("Entry set is:"+ res.toString)
    val pattern = Pattern.compile("^[$].*$")
    println("Regex pattern is: "+pattern)
    var query=""
    res.forEach(elem => {
      val matcher = pattern.matcher(elem.getValue.render().replace("\"", ""))
      query += "," + (if (matcher.matches()) "'" + matcher.group().replace("$", "") + "'" + " as " + elem.getKey.replace("\"", "`")
      else elem.getValue.render().replace("\"", "") + " as " + elem.getKey.replace("\"", "`")
        )
    }
    )

screen shot

Это успешно строится, если я добавлю SDK-2.12. Но мой кластер настроен на Scala 2.11, и он выходит из строя с ошибкой - Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object. Есть идеи как это исправить?

-1
Abhilash Reddy 6 Фев 2020 в 23:06

2 ответа

Лучший ответ

Я исправил это с помощью res.asScala.foreach

0
Abhilash Reddy 24 Фев 2020 в 19:26

Такое исключение указывает на несоответствие версий Scala: либо вы смешиваете версии зависимостей Scala, либо ваша версия Scala между средами компиляции и среды выполнения отличается.

Так что если вы собираете свою программу с помощью scala 2.12 и пытаетесь запустить ее с помощью scala 2.11, вы, скорее всего, получите это исключение

1
Raphael Roth 6 Фев 2020 в 20:30