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

Создание источника scala для экземпляра класса с использованием отражения
Предполагая, что у вас есть экземпляр класса. Каков наилучший подход к созданию действительного исходного кода Scala, который можно было бы записать в файл и скомпилировать для этого экземпляра во время выполнения? (Используя scala Reflection-api /...
45 просмотров
schedule 09.07.2022

Получить имя поля и значение из объекта класса case в scala во время выполнения
Пример класса case: пытался создать универсальный построитель запросов. case class BaseQuery(operand: String, value: String) case class ContactQuery(phone: BaseQuery, address: BaseQuery) case class UserQuery(id: BaseQuery, name: BaseQuery,...
1758 просмотров
schedule 23.11.2022

Использование отражения Scala для проверки метода объекта или поиска типа ключа на карте
Я портирую класс с Ruby на Scala 2.11, который реализует слияние переменных в сообщениях. Я хотел бы передать массив объектов методу слияния и заставить его искать в каждом объекте ключи, на которые есть ссылки в тексте сообщения. Ядром этого...
1244 просмотров
schedule 19.08.2022

Получение подклассов запечатанного трейта
Возможно ли (с помощью макросов, какой-либо формы автоматической магии Shapeless или иным образом) получить список подклассов запечатанного трейта: Во время компиляции? Во время выполнения?
6269 просмотров

В Scala, в чем разница между Universe.TypeTag, TypeRef и Type?
Есть 3 разных класса, ограниченных вселенной: TypeTag , TypeRef и Type . Зачем нужны все 3? Если у меня есть только Type , как мне преобразовать его в TypeTag или TypeRef ? Например. Я получил общий супертип через функцию API отражения...
335 просмотров
schedule 27.05.2024

Создание тега типа вручную
У меня есть некоторый код Scala с тегами типов, который мне нужно сделать доступным для пользователей Java. Моя проблема сводится к решению следующего: Учитывая два тега типа Scala, как я могу вручную создать тег типа для Tuple2[ A , B ]? Если...
49 просмотров
schedule 01.05.2022

Ошибка компиляции не найдено значение после раскрытия макроса
Я новичок в scala-макросах. Я пишу автоматизированную программу записи/чтения JSON для клиента InfluxDB. Читатель выглядит так: trait InfluxReader[T] { def read(js: JsArray): T } InfluxFormatter: object InfluxFormatter { /**...
254 просмотров
schedule 02.11.2022

Как привязать типы к моему интерпретатору Scala?
Я пытаюсь связать значения в интерпретаторе с типами из внешней библиотеки. Вот как я сейчас объявляю свой интерпретатор: val interpreter = new IMain({ val settings = new Settings settings.usejavacp.value = true...
131 просмотров

case соответствует `reflect.runtime.universe.Type`
В Java мы можем сделать switch(value) {case(x): // do something;} В Scala мы можем сделать что-то подобное с выражениями с учетом регистра: val a = 1 a match { case 1 => 1 case 2 => 2 } // 1 Однако он не работает со значением...
100 просмотров
schedule 05.05.2023

Получить полное имя метода в макросах scala
Я использую макросы Scala и сопоставляю Apply , и я хотел бы получить полное имя вызываемой функции. Примеры: println("") -> scala.Predef.println scala.Predef.println("") -> scala.Predef.println class Abc { def met(): Unit = ??? } case...
480 просмотров
schedule 29.09.2023

Получить тип примитивного поля из объекта, используя отражение Scala
Итак, я пытаюсь получить типы каждого поля в классе объектов Scala: package myapp.model object MyObject { val theInt: Option[Int] } Используя ReflectionHelper, любезно предоставленный Брайаном в сообщение . Я использую getFieldType , но...
432 просмотров
schedule 25.12.2022

Получить значения параметров конструктора, используя отражение scala
Работа в кодовой базе со scala, которая хочет, чтобы вы для определенных классов определили своего рода «создать новую версию» - например, если у вас есть класс x (a: int, b: String, c: double).. , у него будет такая функция: class x( a: Integer,...
459 просмотров

Как динамически печатать Any в scala?
Я хочу преобразовать объект «Любой» в объект типа времени выполнения. Основываясь на имени класса (строке) во время выполнения, как мне преобразовать ЛЮБОЙ объект в фактический объект? Я попытался использовать преобразование имени класса в объект...
601 просмотров
schedule 09.04.2023

Почему отражение среды выполнения Scala больше не работает на лямбда-выражении?
Следующий простой код: import org.scalatest.FunSpec class RuntimeMirrorSpike extends FunSpec { import org.apache.spark.sql.catalyst.ScalaReflection.universe._ it("can reflect lambda") { val ll = { v: String => v.toInt }...
262 просмотров
schedule 29.11.2022

Как в Scala создать TypeTag из сериализуемого типа?
В отражении Scala TypeTag обычно может быть создан из Type с помощью TypeCreator: object TypeUtils { import ScalaReflection.universe._ def createTypeTag[T]( tpe: Type, mirror: reflect.api.Mirror[reflect.runtime.universe.type]...
176 просмотров
schedule 13.10.2022

Scala Reflection для создания сопутствующего объекта и вызова метода apply
Вот в чем проблема. trait TestTrait[T, R] extends (T => R) // Class implementing TestTrait. This is one class, there are a number of class implementing TestTrait class TestClass(val input: Map[String, String])extends...
168 просмотров

Как получить имена полей и типы полей из универсального типа в Scala?
В Scala, учитывая общий тип T, как получить список имен полей и типов полей? Например, если у меня есть класс case: case class Person(name: String, age: Int, gender: Boolean) И общая функция: def getFieldNamesAndTypes[T](): Seq[(String,...
413 просмотров

Проблема при использовании концепции класса отражения в scala
У меня есть один такой главный класс: class Test { def exe(first:String, second:String, task:String):String = { task match { case "A" => { val obj = new A(first) obj.defineSecond(second) }...
51 просмотров
schedule 05.11.2022

Вызвать частный метод в произвольном объекте scala
Допустим, у меня есть объект Scala: object SomeObject { private def someMethod(msg: String): Unit = println(msg) } Я могу вызвать someMethod с помощью следующего кода: import scala.reflect.runtime.{universe => ru} import...
133 просмотров
schedule 11.07.2022

Как отразить конкретные возвращаемые типы для методов классов, определенных во время выполнения, с помощью Scala ToolBox?
Отражая метод foo() класса Cls , мы можем легко получить конкретный тип возвращаемого значения, используя следующее. class Cls { def foo() = List("A", "B") } val classType = ru.typeOf[Cls] val classMirror =...
62 просмотров
schedule 18.12.2022