Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menentukan sama ada Objek ialah Jenis Pembungkus untuk Nilai Primitif di Jawa?

Bagaimana untuk Menentukan sama ada Objek ialah Jenis Pembungkus untuk Nilai Primitif di Jawa?

DDD
DDDasal
2024-11-02 05:34:30354semak imbas

How to Determine if an Object is a Wrapper Type for Primitive Values in Java?

Adakah Objek Primitif?

Apabila bekerja dengan tatasusunan Objek, mungkin perlu untuk menentukan sama ada mana-mana elemen adalah primitif jenis. Kaedah Class.isPrimitive() tidak memberikan hasil yang dijangkakan untuk objek, seperti dalam contoh:

int i = 3;
Object o = i;

System.out.println(o.getClass().getName() + ", " +
                   o.getClass().isPrimitive());

yang mencetak:

java.lang.Integer, false

Isunya

Isunya ialah tatasusunan Object[] mengandungi rujukan, bukan primitif. Oleh itu, Class.isPrimitive() sentiasa mengembalikan false untuk objek, walaupun ia mewakili nilai primitif.

A Solution

Untuk menentukan sama ada objek ialah pembungkus untuk jenis primitif, tiada fungsi perpustakaan terbina dalam. Walau bagaimanapun, adalah mungkin untuk mencipta penyelesaian tersuai:

<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<Class<?>>();
        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>

Penyelesaian ini menggunakan HashSet untuk menyimpan jenis pembalut. Apabila menyemak sama ada kelas ialah pembungkus, set digunakan untuk mengesahkan sama ada ia mengandungi kelas itu.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Objek ialah Jenis Pembungkus untuk Nilai Primitif di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn