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

  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Liberator

    Liberator

    14 EYLÜL 2007
  • Pocketnow

    Pocketnow

    14 EKİM 2007