

以下のコードで怒られる理由を知りたいです。  
型タグは見えていると思っていました。

[code]

    class CountDownLatch {
        var N: Int = 5
        var count: Int = 3
        def execute[T](f: => T): Future[Array[T]] = {
          def exec(): Future[T] = Future { f }
    
          val promise = Promise[Array[T]]()
          val future = promise.future
    
          // 実行開始
          Future {
            val futures = for (i <- 0 to N) yield exec().map(x => {
              println("Finished"); x
            })
            while (futures.count(ft => ft.isCompleted) >= count) {}
            promise.success(
              futures
                .filter(ft => ft.isCompleted)
                .map(ft => ft.value.get.get)
                .take(count)
                .toArray // No ClassTag Available for T と怒られる
            )
          }
    
          future
        }
    
      }
      object CountDownLatch {
        def apply(n: Int, count: Int): CountDownLatch =
          new CountDownLatch() { N = n.max(1); count = count.min(n).max(1); }
      }
    
[/code]


CC BY-SA 4.0
2021-07-27T13:48:46.003
78429
2021-07-27T13:48:46.003
40768
question
scala
Generic関数内でのFuture呼び出しの中で型Tag T が見えてない