gpt4 book ai didi

scala - 如何获得 ClassTag 的类?

转载 作者:行者123 更新时间:2023-12-03 21:18:54 28 4
gpt4 key购买 nike

这不起作用 - 有什么办法可以让我的代码保持通用并以某种方式反射(reflect) classOf 一个 ClassTag?

class Foo[T : reflect.ClassTag] { def foo = classOf[T] }

<console>:7: error: class type required but T found
class Foo[T : reflect.ClassTag] { def foo = classOf[T] }

看来这应该可行,但是唉:(

最佳答案

是的,这是可能的。

class Foo[T: reflect.ClassTag] {
def ctag = implicitly[reflect.ClassTag[T]]
def foo: Class[T] = ctag.runtimeClass.asInstanceOf[Class[T]]
}

或更短:
class Foo[T](implicit ctag: reflect.ClassTag[T]) {
def foo: Class[T] = ctag.runtimeClass.asInstanceOf[Class[T]]
}

关于scala - 如何获得 ClassTag 的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974706/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com