Описание тега scala-reflect
В Scala 2.10 была представлена новая библиотека отражения для добавления в Scala более мощного инструментария общих возможностей отражения. Наряду с полнофункциональным отражением времени выполнения для типов и универсальных шаблонов Scala, Scala 2.10 также поставляется с возможностями отражения во время компиляции в виде макросов, а также с возможностью преобразовывать выражения Scala в абстрактные синтаксические деревья.
0
ответов
scala.reflect.internal.MissingRequirement Ошибка
Я запускаю искровую работу в кластере и получаю это scala.reflect.internal.MissingRequirementError: class sf.dat.hadoop.dmv.auto.beans.DMVRecord in JavaMirror with sun.misc.Launcher$AppClassLoader@aede59e of type class sun.misc.Launcher$AppClassLoad…
10 июл '18 в 17:42
1
ответ
Получение правильных параметров конструктора типа для "уточненного" типа
У меня возникают проблемы при сравнении "совместимости" между двумя типами с помощью отражения (на самом деле я пишу макрос). Например, я хочу разрешить Vector[Int] === List[Int], Теперь я знаю общий подход. Но проблема в том, что я не могу получить…
23 апр '16 в 23:01
1
ответ
Создание коллекций Scala с помощью метода наложения с отражением Scala
У меня есть инструмент, который пытается создать экземпляры подклассов различных коллекций Scala, например scala.collection.Seq, Я не знаю заранее, какой конкретный класс должен быть построен, поэтому я пытаюсь использовать отражение, чтобы получить…
02 дек '15 в 21:57
0
ответов
Как создать универсальный класс, используя отражение в scala
У меня есть иерархия классов, начинающаяся с этих черт: sealed trait MessageBody sealed trait MessageKey[T <: MessageBody] Мне нужно автоматически построить список всех прямых подклассов MessageKey, С поиском здесь и там я подошел к этому моменту…
16 дек '15 в 04:46
1
ответ
Получить полное имя метода в макросах scala
Я использую макросы Scala и сопоставляю Apply и я хотел бы получить полностью определенное имя вызываемой функции. Примеры: println("") -> scala.Predef.println scala.Predef.println("") -> scala.Predef.println class Abc { def met(): Unit = ??? …
15 ноя '18 в 19:20
2
ответа
Почему мы должны явно указывать класс типов ClassTag
Теперь, когда scala перешел к исправлению стирания типа JVM с помощью ClassTag класс типов, почему он включен, вместо того, чтобы компилятор всегда захватывал сигнатуру типа для проверки во время выполнения. Наличие неявного параметризованного огран…
17 май '15 в 23:04
0
ответов
Рефлексивно определяя совместимость дженериков Scala
Учитывая тип цели (скажем, List[String]) и некоторый объект o, цель состоит в том, чтобы найти метод o с возвращаемым типом, который совместим с целевым типом. В случае отсутствия обобщений это можно проверить, сравнив целевой тип и тип возвращаемог…
09 июл '17 в 09:16
2
ответа
TypeTag для тематических классов
Я хотел бы сделать случай класса Bla который принимает параметр типа A и он знает тип A во время выполнения (он хранит его в своем info поле). Моя попытка показана в примере ниже. Проблема в том, что этот пример не компилируется. case class Bla[A] (…
10 апр '17 в 17:17
2
ответа
Функция Scala, которая извлекает Class[_] из общего
Итак, что я хочу сделать: def foo(clazz: Class[_]): Unit = { val int = classOf[Int] val str = classOf[String] val opt = classOf[Option[_]] clazz match { case `int` => println("INT!") case `str` => println("STRING!") case `opt` => foo(clazz.…
15 ноя '18 в 12:30
1
ответ
Сглаживание типов в отражении Scala
Как я могу разрешить псевдонимы с учетом Type? Т.е. import reflect.runtime.universe._ type Alias[A] = Option[Option[A]] val tpe = typeOf[Alias[_]] val ExistentialType(quantified, underlying) = tpe Как я могу получить Option[Option[_$1]] от underlyin…
28 мар '15 в 16:49
1
ответ
Как я могу создать тип Option во время выполнения (отражение)?
Используя отражение, я определил тип вещи во время выполнения, t: Type. Теперь я хочу создать новый тип опции [t]. Как я могу это сделать? val t: Type = ... val optT: Type = ??? // Option of whatever t is Почему я хочу это: у меня есть функция-обраб…
17 фев '19 в 15:17
1
ответ
Как загрузить неявный Manifest из поля полиморфного типа
Я пытаюсь построить интерпретатор для моего ADT, но я не знаю, как решить проблему загрузки неявных манифестов хорошим способом. sealed trait Polymorphic[T] case class Type1[T: Manifest](field1: T) extends Polymorphic[T] case class Type2[T: Manifest…
10 ноя '16 в 23:00
2
ответа
java.lang.NoSuchMethodException: scala.collection.immutable.$colon$colon
Я пытаюсь вызвать функцию, используя переменную как тип String, динамически, т.е. переменная будет содержать имя функции как String. Итак, мне нужно вызвать функцию с использованием этой переменной. Итак, я использую Scala Reflection. Работает, если…
29 окт '18 в 11:27
1
ответ
Использование отражения Scala для проверки метода объекта или для определения типа ключа на карте
Я портирую класс из Ruby в Scala 2.11, который реализует объединение переменных в сообщениях. Я хотел бы передать массив объектов методу слияния и заставить его искать в каждом объекте ключи, на которые есть ссылки в тексте сообщения. Ядром этого яв…
28 ноя '15 в 18:41
0
ответов
Доступ к методу AST в Scala
Есть ли рефлексивный способ доступа к методам классов AST? class Clazz { def hello(a: Int) = (a + 1).toLong } val src = """ class Clazz { def hello(a: Int) = (a + 1).toLong } """ Я хочу получить что-то подобное scala> val a = 100 scala> showRa…
24 мар '15 в 23:13
1
ответ
Отражение scala, получить параметр типа суперкласса
Как я могу получить конкретный тип параметров типа суперкласса из подкласса? Предполагая, что у меня есть общий суперкласс, промежуточный класс и подкласс, как показано ниже: class SuperClass[A, B] class IntClass[A] extends SuperClass[A, Int] class …
25 сен '18 в 08:56
1
ответ
Ошибка компиляции "not found value ..." после раскрытия макроса
Я новичок в макросах скала. Я пишу автоматизированный JSON Writer/ Reader для клиента InfluxDB. Читатель выглядит так: trait InfluxReader[T] { def read(js: JsArray): T } InfluxFormatter: object InfluxFormatter { /** * Generate InfluxReader for type …
06 мар '18 в 16:29
1
ответ
Guice, не в состоянии связать ClassTag[T] (узнать имя класса T)
Я хотел бы знать название универсального класса. Решение, которое я использую сейчас, следующее. Я определил класс class A[T: ClassTag] {...} быть в состоянии сделать classTag[T].toString, Это компилируется, но есть проблема с Guice. Я получаю ошибк…
06 сен '16 в 09:07
1
ответ
В scala, как Map[_,_] и scala.collection.immutable.Map[_,_] могут иметь разные TypeTag?
Они ссылаются на одно и то же, но когда я сравниваю 2 типа тегов: val ttg1 = typeTag[Map[_,_]] val ttg2 = typeTag[immutable.Map[_,_]] assert(ttg1.tpe == ttg2.tpe) Я получил: Map[_, _] did not equal scala.collection.immutable.Map[_,_] ScalaTestFailur…
30 дек '17 в 04:29
1
ответ
Scala - производительность при выполнении TypeTags, ClassTags и WeakTypeTags
Введение: ... TypeTag[T] инкапсулирует представление типа времени выполнения некоторого типа во время компиляции T,... ... TypeTag s всегда генерируются компилятором.... [1] TypeTag S расположены в scala.reflect.**пакеты. В другом ответе SO упоминае…
17 апр '15 в 23:15