我可以使用结构类型调用静态java方法吗?

时间:2010-11-04 12:59:27

标签: scala

我想做一些事情(注意我知道这不起作用,但我的问题是它是否有可能使其有效):

object O {
  def main(args: Array[String]) {
    val clazzname = classOf[System].getName
    val c = Class.forName(clazzname).asInstanceOf[{def currentTimeMillis: Long}]
    c.currentTimeMillis
  }
}

这可能吗? (不使用反射)

真正的用例是读取序列化的protobuf消息。

2 个答案:

答案 0 :(得分:2)

简而言之:否

我希望有更好的答案,但正如您已经从邮件列表中看到的那样,这不是(目前)可能的。希望随着Scala中的本地反射支持的成熟,情况会有所改善。

答案 1 :(得分:0)

这对你有用吗?

val c = new {                     
  def cm = System.currentTimeMillis  
}

但是请注意,结构类型在内部使用反射。