9
Scala'dan, sınıf argümanını bekleyen bir Java kütüphanesi kullanıyorum. Örnek:scala - Bir dizeden ders alın
def service: OAuthService = new ServiceBuilder()
.provider(classOf[RunApi])
RunApi Java sınıftır.
Sağlayıcıya çeşitli sınıflar geçebilmeyi isterim. Dize formatında onların bir listesi var.
Örnek, String biçimindeki RunApi'yi biliyorsanız; Örneğin. "com.me.RunApi", yukarıdaki kodla eşdeğerini nasıl oluşturabilirim?
sayesinde, işe gidiyor, ama düşündüm ] (java.lang.Class [_ <: org.scribe.builder.api.Api]) org.scribe.builder.ServiceBuilder [hata] uygulanamaz (java.lang.Class [? 0 (yöntem hizmetinde))]) [hata] .provider (Class.forName ("com.me.RunApi")) [hata]^ [hata] bir hata bulundu –
Sadece gerekli türe dökün: 'Class.forName (" com.me.R unApi ") asInstanceOf [Sınıf [_ <: org.scribe.builder.api.Api]]'. –
Teşekkürler. Bunun yanı sıra Class.forName ("com.me.RunApi"), asInstanceOf (Api) denedim, ancak: java.lang.Class org.scribe.builder.api.Api'ye dönüştürülemez. RunApi, Api arabirimini uygulayan soyut bir ana sınıfı genişletir. –