2011-10-05 22 views
11

içinde bulunduğu bir tür takma adı verildiğinde nasıl kullanılır type Cal = java.util.Calendar türünde takma ad verilirse staticgetInstance yöntemine nasıl erişilir?Scala'dan bir Java statik yöntemine, o sınıfın

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 java.util.{Calendar => Cal}import Cal._ gerçekten benim en iyi bahis ardından mı: Ben Scala Çoğaltma aşağıdaki çalıştı?

+2

Tutarlılık ve tür takma isminin tamamen yerine geçmesini sağlamak için, Scala'nın aynı zamanda statik yöntemlerle erişilebilir olması gerektiğini düşünüyorum. –

cevap

12

Yapamazsınız.

Evet, import java.util.{Calendar => Cal} gerçekten en iyi bahistir.

Kavramsal olarak, Scala object üyeleri, Java sınıflarının statik üyelerine benzer. Bu, aşağıdakilerin işe yarayacağını düşündürebilir, ancak aslında Java sınıfları için tekil bir nesne bulunmadığından dolayı değildir.

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

Sanırım sen de devam et ve her şeyi elle bir nesne nesnesiyle sar. Bir çözümün ** en iyi bahis olduğunu ** iddia edebilir. – agilesteel

İlgili konular