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

  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012
  • majesticdubstep

    majesticdubs

    3 Kasım 2011
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013