gpt4 book ai didi

scala - 在 Scala 中重命名 classOf

转载 作者:行者123 更新时间:2023-12-04 09:37:26 30 4
gpt4 key购买 nike

我正在为 ScalaTest 开发一个客户可读的 DSL。目前我可以写

feature("Admin Login") {
scenario("Correct username and password") {
given("user visits", classOf[AdminHomePage])
then(classOf[SignInPage], "is displayed")

但这会读得更好,因为
feature("Admin Login") {
scenario("Correct username and password") {
given("user visits", the[AdminHomePage])
then(the[SignInPage], "is displayed")

有没有什么办法
def the[T] = 

返回 classOf[T] ?

最佳答案

你可以试试这个:

def the[T: ClassManifest]: Class[T] =
classManifest[T].erasure.asInstanceOf[Class[T]]

书写方式 [T: ClassManifest]context bound相当于:
def the[T](implicit classManifest: ClassManifest[T])
Manifest[T] 的隐式值和 ClassManifest[T]由编译器自动填充(如果它可以具体化传递给方法的类型参数)并为您提供有关 T 的运行时信息: ClassManifest仅将其删除为 Class[_] , 和 Manifest另外可以通知您有关 T 的可能参数化本身(例如,如果 TOption[String] ,那么您也可以了解 String 部分)。

关于scala - 在 Scala 中重命名 classOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290480/

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