SORU
2 NİSAN 2009, PERŞEMBE


Bir Nesne belirleme ilkel türüdür

Object[] bir dizi var, ve ilkel olanları bulmaya çalışıyorum. Class.isPrimitive(), kullanmak için denedim ama ben yanlış bir şey yapıyorum gibi görünüyor:

int i = 3;
Object o = i;

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

baskılar java.lang.Integer, false.

Doğru bir şekilde ya da başka bir alternatif var mı?

CEVAP
2 NİSAN 2009, PERŞEMBE


Object[] bir irade türleri aslagerçektenbaşvurular var, çünkü ilkel olur. Burada i tipi nesne o tarafından başvurulan tür Integer (otomatik-boks nedeniyle) ise int.

Türü olup olmadığını öğrenmek gerekir gibi geliyor ilkel için "kapsayıcı". Hiçbir şey bu standart kütüphaneler yerleşik olduğunu bilmiyorum ama kolay kod:

import java.util.*;

public class Test
{
    public static void main(String[] args)        
    {
        System.out.println(isWrapperType(String.class));
        System.out.println(isWrapperType(Integer.class));
    }

    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;
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 30GB

    30GB

    14 AĞUSTOS 2006
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006
  • mliskIT

    mliskIT

    29 Mart 2012