Нет TypeTag при вызове typeOf [duplicate]

Хорошая цель с самого начала - основанная на характере вашего сайта, я нашел много ресурсов по этому поводу в Googling - вы, конечно, не первый в этом разбираетесь.

Предполагается, что у мистического PHP6 все это выпрямилось, правда?

Вы можете в значительной степени установить utf-8 в качестве глобальной кодировки по умолчанию для mysql на уровне сервера, и она по умолчанию будет правильно соответствовать более гранулированных уровней.

15
задан JasonG 7 June 2013 в 20:36
поделиться

5 ответов

Наконец я узнал, в чем проблема. Классы классов должны быть определены верхним уровнем - они не могут быть вложенными. Что-то вроде этого потерпит неудачу.

class Foo {
  describe("getSettings") {
    case class ParameterObject(foo: String)
    settings.getTypeTag(path, ParameterObject)
  }
}

class Clazzy {
      def getTypeTag[T: TypeTag](obj: T) = ru.typeTag[T]
}
33
ответ дан JasonG 1 September 2018 в 08:31
поделиться

Во время компиляции вам понадобится TypeTag, потому что это способ обойти стирание:

import scala.reflect.runtime.{currentMirror => m, universe => ru}

def getChildSettings[T: TypeTag](path: String, settingsParameterObject: T) = {
  val tpe    = ru.typeOf[T]
  // val classC = tpe.typeSymbol.asClass
  val ctor   = tpe.declaration(ru.nme.CONSTRUCTOR).asMethod
  ...
}

В Обзор документации Scala для Reflection приведен пример получение и вызов конструктора.

3
ответ дан 0__ 1 September 2018 в 08:31
поделиться

Добавьте этот код в свой pom.xml

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-reflect</artifactId>
    <version>2.12.0-M4</version>
</dependency>
3
ответ дан Anxo P 1 September 2018 в 08:31
поделиться

Пожалуйста, объявите класс Case перед запуском основного класса

Пример

case class Person(name: String, age: Long)

def main(args: Array[String]) {
   ...
    val people = sc.textFile("C:\\winutils\\people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()
5
ответ дан Mogsdad 1 September 2018 в 08:31
поделиться

Если вам нужны теги типа для вложенных классов, вы можете использовать WeakTypeTag. Я не знаю, почему, но это намеренно .

9
ответ дан Yaroslav 1 September 2018 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: