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

Получение информации о классе во время выполнения, когда вы не можете указать ClassTag
При написании тестов для проверки правильности выбора класса типов где-то внутри я столкнулся с стиранием типа . У меня нет возможности добавить ClassTag к сигнатуре, если только я не загрязню нетестовую версию трейта, потому что добавление :...
256 просмотров
schedule 24.11.2023

Получение типа функции метода из экземпляра MethodMirror в Scala
Предположим, у меня есть экземпляр MethodMirror , созданный для определенного метода объекта. По полям зеркала я могу легко получить доступ к возвращаемому типу и параметрам метода. Но на самом деле мне нужно получить тип, который этот метод будет...
1122 просмотров

Создание коллекций scala с помощью их метода применения с отражением scala
У меня есть инструмент, который пытается создавать экземпляры подклассов различных коллекций scala, например scala.collection.Seq . Я не знаю заранее, какой конкретный класс должен быть создан, поэтому я пытаюсь использовать отражение, чтобы...
112 просмотров

В Scala, как получить возвращенный TypeTag метода класса?
У меня есть класс: package org.apache.project class Foo { def bar: List[Bar] = ... } это способ отражения scala, который позволяет мне получить typeOf[List[Bar]] из className «org.apache.project.Foo» и имени метода «bar»? Большое спасибо...
438 просмотров
schedule 13.05.2024

Сохранить имена параметров метода в макросе scala
У меня есть интерфейс: trait MyInterface { def doSomething(usefulName : Int) : Unit } У меня есть макрос, который перебирает методы интерфейса и работает с именами методов и параметрами. Я получаю доступ к именам методов, делая что-то...
442 просмотров

Как написать макрос Scala, который оценивает дерево, подобное reify
Я хочу написать макрос, который захватывает фрагмент программы и делает его доступным как Tree во время выполнения. По сути, мне нужна функциональность reify , но встроить ее в другой синтаксис. Я хочу вызвать apply для объекта-компаньона...
198 просмотров
schedule 01.07.2023

Сохранение аргументов типа в Akka receive
На этот вопрос как бы ответил Роланд Кун в этом post , однако, несмотря на несколько комментариев с просьбами о деталях, он не удосужился поделиться полным ответом. Вот что я хочу сделать: у меня есть класс-оболочка case class Event[T](t: T) ,...
106 просмотров
schedule 12.03.2023

объединить `Tree` и `List[Tree]` в отражении времени компиляции scala
У меня есть макрос scala, который создает конструктор для класса на лету. Так, например, если у нас есть класс case class PersonConfig(name: String, age: Int, isFemale: Boolean) . У меня есть древовидная структура для имени класса и аргументы,...
194 просмотров

Получить аргументы FunctionX и типы вывода
Я изо всех сил пытаюсь получить типы аргументов определенной функции в Scala. Например Funcion1[T1, T2] . Поскольку Java устранит проверку типов (предупреждение компилятора: is unchecked since it is eliminated by erasure ), я хотел бы найти...
27 просмотров
schedule 19.08.2022

Scala: как создать интерпретатор, наследующий текущий контекст?
В коде Scala я хотел бы создать интерпретатор, который будет оценивать некоторые строки, которые являются кодом Scala, например, с использованием ScriptEngine. Но я хотел бы передать ей текущую переменную и определения типов, чтобы код в строках мог...
81 просмотров
schedule 08.06.2023

Как создать экземпляр пользовательского класса с помощью ToolBox.eval во время выполнения
Я написал следующий код. import scala.reflect.runtime.currentMirror import scala.reflect.runtime.universe._ import scala.tools.reflect.ToolBox class A object Main extends App { val tb = currentMirror.mkToolBox() tb.eval(tb.parse("new A")) }...
112 просмотров
schedule 27.11.2022

Отражение Scala для преобразования с использованием возвращаемого типа метода во время выполнения
Я использую отражение в scala, и я хочу обобщить код для приведения объекта для возврата типа другого метода, который идентифицируется во время выполнения с использованием отражения Я попытался получить возвращаемый тип метода с помощью отражения,...
284 просмотров
schedule 07.05.2022

Как использовать аннотации Scala в Java-коде
Есть ли способ использовать аннотации, определенные в Scala, чтобы они могли работать с кодом Java? У меня есть библиотека с некоторыми аннотациями, которые я хотел бы использовать в Java.
187 просмотров

Как получить значение времени выполнения параметра, переданного в макрос Scala?
У меня есть якобы простая проблема с макросами, о которой я бился головой в течение нескольких часов, но безуспешно. Возможно, вам поможет кто-нибудь с большим опытом. У меня такой макрос: import scala.language.experimental.macros import...
499 просмотров

Создание экземпляра класса Scala/класса case через отражение
Описание Я пытаюсь создать инструмент, способный преобразовывать экземпляр Map[String, Any] в экземпляр class / case class . Если определение класса содержит параметры по умолчанию, которые не указаны в Map , тогда будут применяться значения...
512 просмотров

Можно ли в Scala создать экземпляр объекта универсального типа T?
В Scala, даже если решение не является элегантным, возможно ли создать/создать новый объект универсального типа T? Можно ли добиться этого с помощью отражения? Например, меня интересует что-то вроде следующего: case class Person(name:...
265 просмотров

Получить родительское перечисление тега типа значения
У меня есть Type экземпляр, который ссылается на Value определенного Enumeration . Есть ли способ получить Type или Symbol родительского перечисления? Другими словами, если у меня есть typeOf[SomeEnumeration.Value] , как я могу получить...
58 просмотров

Отражения среды выполнения Scala получают все члены определенного типа даже для внутренних классов
В scala 2.12.10 Предположим, я хочу неявно преобразовать во время выполнения класс case, в данном случае Special в класс case SpecialString . Неявное преобразование обеспечивается трейтом External . Имя для SpecialString должно быть именем...
81 просмотров
schedule 28.03.2022

В scala 2.13, как использовать фактический TypeTag в макросе?
Эта возможность, по-видимому, отключена SI-6186 , и никакой механизм не может быть использован для замени это Я нашел следующие замечания в его сообщении фиксации: Теперь мы восстанавливаем нарушенный баланс, запрещая TypeTag использовать...
34 просмотров