- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在查看scala反射(reflect)API,并且遇到了很多异常。
Doc引用:
http://docs.scala-lang.org/overviews/reflection/environment-universes-mirrors.html
我如何从泛型获得类型标记?
def getChildSettings[T: ru.TypeTag](path: String, settingsParameterObject: T) = {
import scala.reflect.runtime.{ currentMirror => m }
val m = ru.runtimeMirror(getClass.getClassLoader)
val classC = ru.typeOf[T].typeSymbol.asClass
}
No TypeTag available for ParameterObject.type
import scala.reflect.runtime.universe._
import scala.reflect.runtime.currentMirror
import scala.reflect.runtime.{universe => ru}
def getTypeTag[T: ru.TypeTag](obj: T) = ru.typeTag[T]
case class ParameterObject(stringType: String, optionType: Option[String])
getTypeTag(ParameterObject)
最佳答案
我终于发现了问题所在。
案例类必须在顶层定义-它们不能嵌套。
这样的事情会失败。
class Foo {
describe("getSettings") {
case class ParameterObject(foo: String)
settings.getTypeTag(path, ParameterObject)
}
}
class Clazzy {
def getTypeTag[T: TypeTag](obj: T) = ru.typeTag[T]
}
关于scala - Scala-没有TypeTag可用当使用案例类尝试获取TypeTag时发生异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16988558/
一个简单的问题,如何从类名中获取 TypeTag? 所以基本上 TypeTag 相当于 Java 中的 Class.forName。 注意:Manifest 在这里不适合我,我需要一个 TypeTag
使用 Scala 2.10,我试图从字符串实例化一个类,我想获取它的类型标签。 例如 : scala> def printClassName[Y: TypeTag](x: Y) = { println
我对手动创建 TypeTag 感兴趣(从 2.10M5 开始): object X { import reflect.runtime.universe._ def tt[A : TypeTag
我正在尝试为内部类型获取 TypeTag 或 ClassTag 以向具有类型参数的方法提供 ClassTag。具体来说,我有 trait Baz trait Foo { type Bar weakT
在 REPL 中,我正在写出来自 Reflection - TypeTags and Manifests 的示例. 我对 WeakTypeTag 之间的区别感到困惑和 TypeTag . scala>
我对 TypeTags 的了解是,它们以某种方式取代了 Manifests。互联网上的信息很少,无法让我对这个主题有很好的了解。 因此,如果有人分享有关 TypeTags 的一些有用 Material
TypeTags 似乎只适用于被调用方法的参数中使用的类型参数,而不适用于返回类型: scala> :paste // Entering paste mode (ctrl-D to finish) i
说我有 trait Foo[T] { def bar: Bar[T] } 并希望在调用 Foo[Int] 时获取 bar 的返回类型(即本例中的 Bar[Int])来自 Foo[Int] 的类型标签和
我有一种方法可以探索不同类函数的不同参数值。以前,我做了一些非类型安全的运行时检查,其中,删除后,重要的是我使用的是 Function2 还是 Function3。我已经尝试使用 ClassTags/
我有 createOld我需要覆盖并且我无法更改它的方法。我想使用 TypeTag模式匹配 createNew 中提供的类型.目标是找出如何调用createNew来自 createOld .我目前的理
我们的库使用 TypeTags,但现在我们需要与另一个需要 Manifests 的库进行交互。有没有简单的方法可以从 TypeTag 创建 list ? 最佳答案 如果您在存在 TypeTag 时天真
以下代码未编译: override def read[T <: Product](collection : String): Dataset[T] = { val mongoDbRdd = Mon
我正在尝试修改 List.toString 的行为根据其类型参数。自 List无法扩展,被自定义类包裹 CList (可以使用隐式,但问题会保持不变?)。打印 CList 时出现问题的 CList s
简介 : ... TypeTag[T] encapsulates the runtime type representation of some compile-time type T. ... ..
我有一个简单的 Scala 程序来测试 Scala 推断类型类的能力: import scala.reflect.ClassTag object InferTypeTag { import org
下面是如何在运行时使用 Manifest 创建类型 T 的新实例: trait MyTrait class MyClass1(val name: String) extends MyTrait cla
这个问题已经有答案了: How to create a TypeTag manually? (5 个回答) 已关闭 3 年前。 在 Scala 反射中,通常可以使用 TypeCreator 从类型构造
我有一个多态方法,它将自定义案例类作为类型参数。现在,为了支持多个案例类(在配置文件中定义为字符串),我需要将字符串转换为案例类的 tagType。 为此,我使用 runtimeMirror 方法从
给定一个类: class MyClass[A, B[A] <: SomeClass[A]](...) { ... } 我想为 A 和 B[A] 添加类型标签。 但是, class MyClass[A:
我正在尝试将类型标记转换为维护/保留通常删除的类型参数的 java 类。有相当多的库受益于这些转换(例如 Jackson 和 Guice)。我目前正在尝试将基于 Manifest 的代码迁移到 Typ
我是一名优秀的程序员,十分优秀!