scala.language.existentials的scaladoc在哪里?

Lai*_*uan 6 scala existential-type

当我尝试编写一个接受any Class[_]作为参数的类时:

case class A(klass: Class[_])
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

test.scala:1:警告:推断的存在类型选项[类[_ $ 1]] forSome {type $ 1},不能用通配符表示,应该通过使隐式值scala.language.existentials可见来启用.这可以通过添加import子句'import scala.language.existentials'或通过设置编译器选项-language:existentials来实现.有关为何应明确启用该功能的讨论,请参阅scala文档以获取值scala.language.existentials.case class A(klass:Class [ ])^找到一个警告

我愿意知道为什么它不起作用.但是"scala docs for value scala.language.existentials"在哪里?我用谷歌搜索"scaladoc scala.language.existentials",但得到了一些我无法理解的线索.

澄清:我知道实现这样一个类的"正确"方法是:

case class A[T](klass: Class[T])
Run Code Online (Sandbox Code Playgroud)

但我想知道警告信息的含义.

Mau*_*res 4

在这种情况下,您要寻找的是ClassTag

class A[T](implicit val tag : reflect.ClassTag[T])
Run Code Online (Sandbox Code Playgroud)

这为您提供了ClassTag通用参数的对象,您可以Class在创建对象时使用该对象来访问给定的参数。

至于存在主义,你可以检查: