Вопросы по теме 'scala-reflect'

Типы сглаживания в отражении Scala
Как я могу разрешить псевдонимы с Type ? Т.е. import reflect.runtime.universe._ type Alias[A] = Option[Option[A]] val tpe = typeOf[Alias[_]] val ExistentialType(quantified, underlying) = tpe Как мне получить Option[Option[_$1]] от...
175 просмотров
schedule 22.11.2021

Доступна ли в Scala Reflection вселенная времени компиляции?
В этом документе: http://docs.scala-lang.org/overviews/reflection/environment-universes-mirrors.html Вселенная отражения Scala имеет 2 реализации: 1 для среды выполнения (в scala.reflect.runtime) и 1 для времени компиляции (в...
132 просмотров
schedule 08.11.2021

Класс экземпляра case из сопутствующего объекта
Имею следующее: trait C {} object O { case class Foo(bar: String) extends C } И я хотел бы создать экземпляр Foo из String. До того момента, как я создал экземпляр Foo, но я не могу выполнить приведение к C. Я использую: val ob =...
377 просмотров

Scala: как получить нестертый экземпляр класса с имплицитами без использования asInstanceOf?
У меня есть следующий метод Java: public <T> void foo(Class<T> parentClass, Class<? extends T> childClass); Я попытался использовать неявный ClassTag для вызова вышеуказанного метода, но, к сожалению, методы runtime...
77 просмотров
schedule 19.11.2021

Tensorflow в отражении Scala
Я пытаюсь заставить tensorflow для java работать на Scala. Я использую java-библиотеку tensorflow без какой-либо оболочки для Scala. На sbt у меня есть: Если я запустил HelloWord найденный здесь , он РАБОТАЕТ нормально, с адаптации...
246 просмотров
schedule 17.03.2022

Почему в функции различается тип члена объекта?
Код ниже дает следующий результат: as member: nested: AnyRef{def x: Int; def x_=(x$1: Int): Unit} as local: nested: Object (Протестировано с Scala 2.12.12 и Scala 2.12.3) Может кто-нибудь объяснить, почему? object Main extends App { def...
70 просмотров
schedule 13.03.2022

Guice, не удалось связать ClassTag[T] (чтобы узнать имя класса T)
Я хотел бы знать имя универсального класса. Решение, которое я использую сейчас, заключается в следующем. Я определил класс class A[T: ClassTag] {...} , чтобы он мог выполнять classTag[T].toString . Это компилируется, но есть проблема с...
342 просмотров

Как я могу создать тип Option во время выполнения (отражение)?
Используя отражение, я определил тип вещи во время выполнения, t: Type. Теперь я хочу создать новый тип опции [t]. Как я могу это сделать? val t: Type = ... val optT: Type = ??? // Option of whatever t is Почему я хочу этого: у меня есть...
81 просмотров
schedule 07.04.2022

Scala: использование TypeTag в методе
Я пытаюсь написать такой метод: def foo[T:TypeTag](value: Int):String = { (/* do something */).mapTo[T].map(_.toJson) } где mapTo имеет подпись: def mapTo[S](implicit tag: ClassTag[S]): Future[S] = { ... } используя...
262 просмотров
schedule 22.05.2022

Как отразить конкретные типы, которые соответствуют параметрам типа абстракции в Scala?
Предположим, у нас есть универсальный тип (например, Seq[E] ) и конкретный подтип (например, Seq[Int] ). Как мы можем извлечь конкретный тип, который соответствует параметрам типа абстракции. Другими словами, откуда мы можем знать E -> Int ....
38 просмотров
schedule 13.06.2022

Как получить псевдоним типа псевдонима типа во время выполнения scala?
import scala.reflect.runtime.universe._ object Main { final type INeedDetails = (Int, String, Unit, Nothing, Float) def main(args: Array[String]): Unit = println { typeTag[INeedDetails] } } В приведенном выше фрагменте будет...
323 просмотров

Странное несоответствие типа с макросом: найдено: одноэлементный тип с базовым типом A, требуется: A
у меня есть class Foo[A] { def foo[B](x: A, y: B) = y } class Bar[A] extends Foo[A] { override def foo[B](x: A, y: B) = superCall } где superCall макрос белого ящика должен расширяться до super.foo[B](x, y) , и это то, что показывает...
266 просмотров
schedule 22.08.2022

Узнайте аргументы типа для конструктора типа, зная аргументы типа конструктора типа, который он расширяет
Пусть X будет конструктором типа с параметрами типа A1 , A2 , ..., An . Например Option[A] и Function1[A1, A2] . Пусть X[T1, T2, ..., Tn] будет типом, полученным в результате применения конструктора типа X к конкретному аргументу типа...
94 просмотров
schedule 05.09.2022

В scala, как создать ClassTag специализированного класса, используя ClassTag его общего члена?
В качестве примера возьмем общий класс Array[T] : import scala.reflect.ClassTag { val t = implicitly[ClassTag[String]] val ts = implicitly[ClassTag[Array[String]]] Seq(t, ts).foreach(println) } это даст следующий результат:...
192 просмотров

Можно ли найти возвращаемый тип метода типа параметра в Scala, где параметр является примитивным типом?
Предположим, у меня есть: class X { val listPrimitive: List[Int] = null val listX: List[X] = null } и я распечатываю возвращаемые типы каждого метода в Scala следующим образом: classOf[ComplexType].getMethods().foreach { m =>...
460 просмотров
schedule 05.01.2023

Как получить параметры типа для Reflect.runtime.universe.Type в scala?
Предположим, я получаю Type, представляющий List[Int]: > import scala.reflect.runtime.universe > val mirror = universe.runtimeMirror(this.getClass.getClassLoader) mirror: reflect.runtime.universe.Mirror = JavaMirror with ... > class X{...
1076 просмотров
schedule 01.09.2023

В отражении Scala, почему функция отражения в TypeTag все еще имеет стирание типа?
Учитывая следующую программу scala: val arr: Seq[String] = Seq("abc", "def") val cls = arr.head.getClass println(cls) val ttg: TypeTag[Seq[String]] = typeOf[Seq[String]] val fns = ttg.tpe .members val fn = fns .filter(_.name.toString ==...
279 просмотров
schedule 04.06.2023

Преобразование Map во вложенный класс case
Я хочу преобразовать Map[String, Any] в заданный класс case, и карта может быть вложенной картой. Например, personDataMap следует преобразовать в Person("evan",24,Address(15213,"5000 Forbes Ave")) . case class Address(zip: Int, name:...
293 просмотров
schedule 02.06.2023

scala.tools.reflect.ToolBoxError: сбой рефлексивной компиляции: невозможно инициализировать компилятор из-за java.lang.VerifyError
Я хочу передать файл scala, содержащий класс case, чтобы мое приложение скомпилировало этот класс case во время выполнения и начало его использовать. Основная причина, по которой я это делаю, заключается в том, что я не хочу перестраивать свой код...
1025 просмотров
schedule 10.05.2023

Как сравнить возвращаемый тип метода с родным Scala или TypeTag?
Итак, я использую библиотеку отражений Scala и пытаюсь проверить, соответствует ли метод заданному типу. Чтобы упростить, я пытаюсь проверить только его вывод. Что у меня есть сейчас: val returnType = methodSymbol.returnType // returnType:...
132 просмотров
schedule 26.10.2022