SORU
19 EKİM 2009, PAZARTESİ


Güvenli döküm long int için

Java en aptalca yolu long int için bir döküm herhangi bir bilgi kaybetmek olmadığını doğrulamak için nedir?

Bu benim geçerli bir uygulama

public static int safeLongToInt(long l) {
    int i = (int)l;
    if ((long)i != l) {
        throw new IllegalArgumentException(l   " cannot be cast to int without changing its value.");
    }
    return i;
}

CEVAP
19 EKİM 2009, PAZARTESİ


Bu kadar basit yapardım sanırım

public static int safeLongToInt(long l) {
    if (l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) {
        throw new IllegalArgumentException
            (l   " cannot be cast to int without changing its value.");
    }
    return (int) l;
}

Daha açık bir şekilde tekrarlanan döküm daha niyet ifade eder sanırım... ama biraz öznel.

Potansiyel ilgi not - C# sadece.

return checked ((int) l);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edgar flores

    Edgar flores

    7 HAZİRAN 2006
  • manadude21

    manadude21

    11 Mart 2008
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006