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

  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011