Pertanyaannya paling baik dijelaskan dengan sebuah contoh:
Di Java untuk JPA EntityManager, saya bisa melakukan hal berikut (Akun adalah kelas Entitas saya):
Account result = manager.find(Account.class, primaryKey);
Di Scala, upaya naif saya adalah:
val result = manager.find(Account.class, primaryKey)
Tetapi ketika saya mencoba menggunakannya Account.class
di Scala, sepertinya tidak seperti ini. Bagaimana saya bisa menentukan objek java.lang.Class untuk kelas Akun di Scala?
Jawaban:
Menurut " The Scala Type System ",
Namun,
classOf[T]
dangetClass
mengembalikan nilai yang sedikit berbeda, yang mencerminkan efek penghapusan tipe pada JVM, dalam kasus getClass.Itu sebabnya yang berikut ini tidak akan berfungsi :
Ada tiket tentang jenis pengembalian
getClass
.( James Moore melaporkan bahwa tiketnya "sekarang", yaitu November 2011, dua tahun kemudian, diperbaiki.
Pada 2.9.1,
getClass
sekarang tidak:)
Kembali pada tahun 2009:
Catatan: mengenai
getClass
, solusi yang mungkin adalah:sumber
classOf[Account]
di Scala setara denganAccount.class
di Jawa.sumber