我试图将一个类作为参数传递给某个函数,它将实例化该类并返回它.这是我的代码:
module A.Views {
export class View { ... }
}
module A.App {
export class MyApp {
...
registerView(viewKlass:A.Views.View):void
{
var test = new viewKlass;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我试图编译这个时,我得到:
(...): Value of type 'Views.View' is not newable.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
如果newable类型值是对象构造函数,我如何在运行时传递构造函数?
问题标题可能不那么有用,因为我正在尝试实现各种功能.我想根据他发送的标题授权调用者,并将此信息传播给gRPC方法处理程序.问题在于授权过程的异步性质.我最终得到了这个:
case class AsyncContextawareInterceptor[A](
f: Metadata ? Future[Either[Status, (Context.Key[A], A)]]
)(implicit val system: ActorSystem)
extends ServerInterceptor
with AnyLogging {
import system.dispatcher
sealed trait Msg
case object HalfClose extends Msg
case object Cancel extends Msg
case object Complete extends Msg
case object Ready extends Msg
case class Message[T](msg: T) extends Msg
override def interceptCall[ReqT, RespT](call: ServerCall[ReqT, RespT],
headers: Metadata,
next: ServerCallHandler[ReqT, RespT]): ServerCall.Listener[ReqT] =
new ServerCall.Listener[ReqT] {
private val stash = new java.util.concurrent.ConcurrentLinkedQueue[Msg]()
private var interceptor: Option[ServerCall.Listener[ReqT]] = None
private def …Run Code Online (Sandbox Code Playgroud) 我defadt在clojure.contrib.types中找到了宏.不幸的是,在clojure中没有关于ADT使用的有用文档.我用谷歌搜索了几个小时,发现了一些关于它的信息.clojure中的ADT是什么?怎么用?任何信息都会有所帮助:)
ffmpeg有一个输入格式选项 - x11grab允许捕获指定区域并将其输出到文件/流.我试图以编程方式执行相同的操作,但我没有找到任何非基本的教程/ ffmpeg API参考.
我想知道,如何用avformat_input_file或类似的东西打开x11区域.或者我应该使用XCopyArea/etc吗?
(任何编程语言都会满足)