Вопросы по теме '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 просмотров
schedule
31.10.2021
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 просмотров
schedule
05.04.2022
Как я могу создать тип 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 просмотров
schedule
10.07.2022
Странное несоответствие типа с макросом: найдено: одноэлементный тип с базовым типом 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 просмотров
schedule
29.09.2022
Можно ли найти возвращаемый тип метода типа параметра в 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