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

  • Juan Carlos Candela Bordera

    Juan Carlos

    4 Mart 2009
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006
  • tychoadragmire

    tychoadragmi

    20 Mart 2006