Menentukan sama ada Objek adalah Primitif
Soalan:
Apabila berurusan dengan tatasusunan Objek[], bagaimana anda boleh mengenal pasti unsur yang mewakili nilai primitif? Menggunakan Class.isPrimitive() nampaknya menghasilkan hasil yang salah.
Jawapan:
Memahami bahawa unsur-unsur dalam tatasusunan Object[] ialah rujukan kepada objek, jelaslah bahawa Class itu. isPrimitive() akan sentiasa mengembalikan false. Untuk menentukan sama ada objek ialah "pembungkus untuk primitif" (cth., Integer untuk int), pendekatan tersuai diperlukan.
Berikut ialah coretan kod Java yang menunjukkan penyelesaian:
<code class="java">import java.util.*; public class Test { public static void main(String[] args) { System.out.println(isWrapperType(String.class)); // false System.out.println(isWrapperType(Integer.class)); // true } private static final Set<Class<?>> WRAPPER_TYPES = getWrapperTypes(); public static boolean isWrapperType(Class<?> clazz) { return WRAPPER_TYPES.contains(clazz); } private static Set<Class<?>> getWrapperTypes() { Set<Class<?>> ret = new HashSet<>(); ret.add(Boolean.class); ret.add(Character.class); ret.add(Byte.class); ret.add(Short.class); ret.add(Integer.class); ret.add(Long.class); ret.add(Float.class); ret.add(Double.class); ret.add(Void.class); return ret; } }</code>
Dengan menggunakan pendekatan ini, anda boleh menentukan dengan tepat sama ada objek dalam tatasusunan Object[] mewakili nilai primitif atau kelas pembalut untuk nilai primitif.
Atas ialah kandungan terperinci Bagaimana untuk Mengenalpasti Nilai Primitif dalam Tatasusunan Objek[]?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!