2011-10-15 36 views
7

dolaylı scala nesne yöntemleri eklemek için bir yolu var mı?ekleme nesne yöntemleri örtük

Upd: Örneğin , Süzgeçlenmemiþ skala kütüphanesi http isteği okunan vücut yöntemleri Body.string(req: HttpRequest) ve Body.bytes(req: HttpRequest) içeren tekil nesne Body sahiptir. Yani, Body.cars(req:HttpRequest) gibi, alan adım nesneleri vücudu okumak istiyorum.

+0

daha iyi ne istediğinizi açıklayın: Bu kod snipper sorunuza cevap vermez. –

cevap

15
import scala.language.implicitConversions 

object ObjA 

object ObjB { 
    def x = 1 
} 

object Main { 
    implicit def fromObjA(objA: ObjA.type) = ObjB 

    def main(args: Array[String]): Unit = { 
     println(ObjA.x) 
    } 
} 
+0

Ben gerekenler. Teşekkürler. – KkZz

+1

ben onu alamadım ... Bütün bu kaynak dosya var mı? ObjB.scala gibi mi? Ya da bazı yöntem uygulamalarının bu kısmı mı? Ben sadece bu kodumu koyarak çalıştı ve işe yaramadı ... –

+0

@EduardoBezerra Ben 2.11.7 ile çalışmak için cevabı güncelledim, ama ben bugünlerde Scala kullanmıyorum, bu yüzden herhangi bir öneri bekliyoruz. – elbowich

11

Eğer dolaylı ekleyerek yöntemlerle ile ne demek istiyorsunuz?

implicit def toFunkyString(s: String) = new { 
    def reverseUpper = s.reverse.toUpperCase 
} 

"Foo".reverseUpper //yields 'OOF' 
toFunkyString("Foo").reverseUpper //explicit invocation 
+1

' "Foo"' Bir sınıf örneği, ben tekil nesne yöntemleri, Math.myMethod 'gibi bir şey ekliyor ne anlama geldiğini (1)'. Hepsi aynı mı? – KkZz