问题标签 [classtag]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
401 浏览

scala - 为抽象类型隐式获取 ClassTag

我正在尝试隐式获取 ClassTag。我有以下特点:

有没有办法ClassTag隐式地通过类型变量声明而不显式指定它?

问题是我正在努力使代码尽可能易于客户使用。

0 投票
1 回答
2208 浏览

scala - Scala 映射到案例类的转换

我正在尝试使用 Scala 反射(Scala 2.11)将 Scala Map[String, Any] 转换为案例类,如下所示 -

不幸的是,这会导致编译错误 -

我对使用 ClassTags 相当陌生,我知道这个错误主要是因为 java.lang.Object 是 Any 的子集,并且 Any 可能包含非 java 对象。

当我尝试用 AnyRef(对应于 JRE 中的 java.lang.Object)替换 Any 时,函数调用会导致类型不匹配错误。

解决此错误的最佳方法是什么?建议表示赞赏。谢谢!

更新 1 - 更新 this 以将 Any 隐式转换为 AnyRef 会导致函数调用出现错误“java.util.NoSuchElementException”。

我在这里做错了什么?

0 投票
1 回答
61 浏览

scala - json4s JValue scala classTag 工作错误

在我的代码中,我classTag[JValue]想获取org.json4s.JsonAST.JValue,但实际上它返回org.json4s.JsonAST$JValue,这很奇怪!为什么有$?我是使用scala的新手,有人可以回答我吗?多谢

0 投票
0 回答
344 浏览

scala - Scala、ClassTag 和 Guice:注入构造函数时出错,java.lang.StackOverflowError

在我的 Play 2 应用程序中,我需要在由 Guice 实例化的类中创建一个类标记(作为一个急切的单例;这是一个要求)。

这是 Guice 绑定:

当应用程序启动时,我收到以下异常:

CreationException: Unable to create injector,看到如下错误:

1) 在 Module.configure(Module.scala:64) 的 account.eventlistener.AccountRoleUpdater.(AccountRoleUpdater.scala:45) 处注入构造函数 java.lang.StackOverflowError 时出错(通过模块:com.google.inject.util.Modules$ OverrideModule -> 模块)同时定位 account.eventlistener.AccountRoleUpdater

1 错误] 在 play.core.server.DevServerStart$$anon$1.reload(DevServerStart.scala:186) 在 play.core.server.DevServerStart$$anon$1.get(DevServerStart.scala:124) 在 play.core。 server.AkkaHttpServer.modelConversion(AkkaHttpServer.scala:183) at play.core.server.AkkaHttpServer.handleRequest(AkkaHttpServer.scala:189) at play.core.server.AkkaHttpServer.$anonfun$createServerBinding$3(AkkaHttpServer.scala:106)在 akka.stream.impl.fusing.MapAsync$$anon$23.onPush(Ops.scala:1172) 在 akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:499) 在 akka.stream.impl.fusing .GraphInterpreter.processEvent(GraphInterpreter.scala:462) at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:368) at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:571) Caused by: com.google.inject.CreationException: Unable to create injector,看到如下错误:

1) 在 Module.configure(Module.scala:64) 的 account.eventlistener.AccountRoleUpdater.(AccountRoleUpdater.scala:45) 处注入构造函数 java.lang.StackOverflowError 时出错(通过模块:com.google.inject.util.Modules$ OverrideModule -> 模块)同时定位 account.eventlistener.AccountRoleUpdater

在 com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:184) 在 com.google.inject.internal.InternalInjectorCreator 的 com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:470) 出现 1 个错误.build(InternalInjectorCreator.java:110) 在 com.google.inject.Guice.createInjector(Guice.java:99) 在 com.google.inject.Guice.createInjector(Guice.java:84) 在 play.api.inject。 guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:185) at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:137) at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)在 play.core.server.DevServerStart$$anon$1.$anonfun$reload$3(DevServerStart.scala:174) 在 play.utils.Threads$。withContextClassLoader(Threads.scala:21) 原因:java.lang.StackOverflowError: null at account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) at account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) at account .eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) 在 account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) 在 account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) 在 account.eventlistener.AccountRoleUpdater。 ct(AccountRoleUpdater.scala:21) at account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) at account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala:21) at account.eventlistener.AccountRoleUpdater.ct(AccountRoleUpdater.scala :21) 在 account.eventlistener。AccountRoleUpdater.ct(AccountRoleUpdater.scala:21)

这似乎是一个周期性的参考。

0 投票
1 回答
573 浏览

scala - A 没有可用的 ClassTag - 但存在隐式参数

使用 scala 2.12.4 我无法让这段代码工作,因为它说

[错误] .../src/main/scala/effect.scala:32:11:A 没有可用的 ClassTag

[错误] 效果(效果定义)

[错误] ^

[错误] 发现一个错误

[错误] (compile:compileIncremental) 编译失败

这是(简化的)代码。我需要类标签的原因是稍后在代码中进行过滤(installEffect)。

ps:是用法

很坏?我无法绕过那个演员

0 投票
1 回答
583 浏览

scala - Scala从类实例中获取类标签

我需要编写一个通用方法来获取对象的所有字段及其值,该对象的类可能包含ClassTag,所以我们也应该找到一种方法来获取它,有什么好的方法吗?困难是我们不知道前面的类,它可能包含 ClassTag(从零到多个),也可能不包含。

例如,

我们应该输出 x => 1

我们应该输出 _$1 = Float

0 投票
1 回答
1362 浏览

scala - 榕树配置加载通用

加载榕树配置,如

失败:

当而是直接指定一个案例类而不是TieSomeClass它工作得很好。我在这里想念什么?

0 投票
1 回答
937 浏览

scala - scala T 不是一个类

我有这样的方法:

和一堂课

当从SparkBaseRunner类中调用第一个方法时

编译错误是:

我能做些什么来解决这个与泛型相关的问题?

0 投票
0 回答
2488 浏览

scala - 将scala列表转换为数组

当我尝试这样做时,它工作正常

但我试图理解幕后发生的隐含意义。toArray 的签名是

任何关于正在发生的事情的解释都会很高兴知道。

0 投票
2 回答
247 浏览

scala - 如何在Scala中初始化类型变量?

我是scala的新手,很抱歉这个愚蠢的问题。我想从这个 Scala 代码中删除返回语句(我的实际情况比这复杂得多)

这就是为什么我要存储 Type 实例的返回值,如下所示:

上面的解决方案无法编译。我怎样才能为 type 初始化变量Type