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

  • George McCarron

    George McCar

    29 Mayıs 2013
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009
  • thewinekone

    thewinekone

    17 Aralık 2005