2011-10-05 3 views
11

型名がtype Cal = java.util.Calendarの場合、どのようにstaticgetInstanceメソッドにアクセスできますか?私は、ScalaのREPLで、次を試してみました:それは、そのクラスの型エイリアスが与えられた場合、ScalaからJava静的メソッドにアクセスする方法

scala> type Cal = java.util.Calendar 
defined type alias Cal 
scala> Cal.getInstance 
<console>:8: error: not found: value Cal 
      Cal.getInstance 
     ^
scala> val Cal = java.util.Calendar 
<console>:7: error: object Calendar is not a value 
    val Cal = java.util.Calendar 
        ^

import Cal._本当に私の最善の策が続くimport java.util.{Calendar => Cal}ですか?

+2

型のエイリアスを型に完全に置き換えるために、Scalaは静的メソッドにアクセスできるようにする必要があります。 –

答えて

12

できません。

はい、import java.util.{Calendar => Cal}が本当にベストです。

概念的には、Scala objectのメンバーは、Javaクラスの静的メンバーと似ています。これは以下のことがうまくいくことを示唆しているかもしれませんが、実際にはJavaクラスで利用可能なシングルトンオブジェクトがないためではありません。

scala> val Cal = java.util.Calendar 
<console>:13: error: object Calendar is not a value 
     val Cal = java.util.Calendar 
         ^
+0

「オブジェクトカル」で手作業で手作業でラップすることもできますね。ある解決法が**最善の賭けであると主張するかもしれない**。 – agilesteel

関連する問題