bug0412.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 34 行

SCALA
34
字号
object Magic {  abstract class A[T1,T2]() {    trait C            { type T; }    trait C1 extends C { type T = T1; }    trait C2 extends C { type T <: T2; }    type CX;    var cv: CX with C2 = _;    val c: CX with C2 = cv;    def castA(x: c.T): T2 = x;  }  class B[T1,T2] extends A[T1,T2]() {    type CX = C1;    def castB(x: T1): T2 = castA(x);  }  def cast[T1,T2](v: T1): T2 =    new B[T1,T2]().castB(v)}object Test {  def main(args: Array[String]): Unit = {    Magic.cast[String,Exception]("xyz").printStackTrace();  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?