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

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007