SORU
12 Ocak 2015, PAZARTESİ


Numaralandırma adları staj Java?

Numaralandırma adları staj Java?

I. e. aynı ada sahip durumda enum1.name() == enum2.name() bunun garantisi var mı? Ve güvenilir konulmak üzere garantili bir Dize için enum.name() karşılaştırmak.

CEVAP
12 Ocak 2015, PAZARTESİ


Bu kesin garantisi yoktur olsa da, sonuçta aynı adları ile karşılaştırma her zaman enum sabitler için başarılı olmanız kaçınılmaz:

enum A {enum1};
enum B {enum1};
System.out.println(A.enum1.name() == B.enum1.name()); // Prints "true"

Bu nedenle bu Java derleyici yapıları, alt Enum ve onlar sonunda arama Enum'In tek korumalı yapıcı, geçen ad enum değer:

protected Enum(String name, int ordinal);

Adı bir dize biçiminde oluşturulan kod içine gömülüdür. String belgelerine göre

Tüm harflerden oluşan dizeler ve dize değerli sabit ifade staj yaptım.

Bu ifadenizi enum sabitlerin adları aynı zaman başarı örtülü bir garanti tutarlar. Ancak, bu davranış güveniyor, ve kimse benim kod okuma kafası, bir hata yaptığımı düşünerek tırmalama olurdu çünkü equals(...) yerine kullanmak olmaz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007