Apa cara terbaik untuk menentukan tipe data di groovy?
Saya ingin memformat output secara berbeda jika ini kencan, dll.
Untuk menentukan kelas suatu objek cukup panggil:
someObject.getClass()
Anda dapat menyingkat ini someObject.class
dalam banyak kasus. Namun, jika Anda menggunakan ini pada Map
itu akan mencoba untuk mengambil nilai dengan kunci 'kelas'. Karena itu, saya selalu menggunakan getClass()
meskipun sedikit lebih lama.
Jika Anda ingin memeriksa apakah suatu objek mengimplementasikan antarmuka tertentu atau memperluas kelas tertentu (misalnya Tanggal) gunakan:
(somObject instanceof Date)
atau untuk memeriksa apakah kelas dari sebuah objek adalah persis kelas tertentu (tidak subclass dari itu), gunakan:
(somObject.getClass() == Date)
instanceof
sangat bagus untuk memfilter berdasarkan antarmuka.Map
instancedef test = {} println test.getClass()
kelas Script1 $ _run_closure1 ??Cara asyik sederhana untuk memeriksa jenis objek:
Dapat diterapkan juga ke antarmuka.
sumber
Hanya untuk menambahkan opsi lain ke jawaban Dónal, Anda juga masih dapat menggunakan
java.lang.Object.getClass()
metode lama yang baik .sumber
Anda dapat menggunakan isCase Keanggotaan Operator () yang merupakan cara asyik lainnya:
sumber
somObject instanceof Date
seharusnya
somObject instanceOf Date
sumber
instanceof
semua harus dalam huruf kecil.