1 HAZİRAN 2011, ÇARŞAMBA
Tür parametresi için Scala classOf
Nesne güncelleştirmeleri için genel bir yöntem / java scala oluşturmak için çalışıyorum ama bir tür parametresi için sınıf alamıyorum.
İşte benim kod:
object WorkUnitController extends Controller {
def updateObject[T](toUpdate: T, body: JsonObject){
val source = gson.fromJson(body, classOf[T]);
...
}
}
Olsun hata
sınıf türü gerekli ama T bulundu
Yapamazsın java biliyorum ama bu mümkün scala hiç?
Teşekkürler!
CEVAP
1 HAZİRAN 2011, ÇARŞAMBA
NedeniyleApaçıkkaldırılmış(Scala 2.10.0 beri) bu güncellenmiş cevaptır
import scala.reflect.ClassTag
import scala.reflect._
object WorkUnitController extends Controller {
def updateObject[T: ClassTag](toUpdate: T, body: JsonObject){
val source = gson.fromJson(body, classTag[T].runtimeClass)
???
}
}
ClassManifest
yerine ClassTag
kullanmalısınız
ve .erasure
yerine 7**
Orijinal cevap Evet, bildirimleri kullanarak bunu yapabilirsiniz:
object WorkUnitController extends Controller {
def updateObject[T: ClassManifest](toUpdate: T, body: JsonObject){
val source = gson.fromJson(body, classManifest[T].erasure);
...
}
}
Bunu Paylaş:
Nasıl java kullanmak için.String.Scala...
" 'inş NSString gönderme *&#...
Android için Scala Programlama...
Scala: en İyi komut satırı parametrele...
Nasıl dava sınıfı scala bir Numaraland...