Rumah > Java > javaTutorial > 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
Lepaskan: 2024-11-02 05:34:30
asal
427 orang telah melayarinya

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());
Salin selepas log masuk

yang mencetak:

java.lang.Integer, false
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan