C # ile çok aşinayım ama Java ile daha çok çalışmaya başladım. Java'daki numaralandırmaların temelde C #'dakilere eşdeğer olduğunu öğrenmeyi bekliyordum, ancak görünüşe göre durum böyle değil. Başlangıçta, Java numaralandırmalarının çok avantajlı görünen birden fazla veri parçası içerebileceğini öğrenmekten heyecan duydum ( http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html ). Bununla birlikte, o zamandan beri, C # 'da önemsiz olan, bir enum öğesine kolayca belirli bir değer atama yeteneği ve sonuç olarak bir tamsayıyı makul miktarda çaba harcamadan bir numaralandırmaya dönüştürme yeteneği gibi birçok özellik eksik buldum ( yani tamsayı değerini eşleşen Java Enum değerine dönüştür .
Öyleyse sorum şu: Bir grup public static final alanı olan bir sınıf üzerinde Java numaralandırmalarının herhangi bir faydası var mı? Yoksa sadece daha kompakt bir sözdizimi mi sağlıyor?
DÜZENLEME: Daha açık konuşayım. Java numaralandırmalarının , aynı türden bir grup genel statik son alan içeren bir sınıfa göre faydası nedir ? Örneğin, ilk bağlantıdaki gezegen örneğinde, bu genel sabitlere sahip bir sınıfa göre bir numaralamanın avantajı nedir:
public static final Planet MERCURY = new Planet(3.303e+23, 2.4397e6);
public static final Planet VENUS = new Planet(4.869e+24, 6.0518e6);
public static final Planet EARTH = new Planet(5.976e+24, 6.37814e6);
public static final Planet MARS = new Planet(6.421e+23, 3.3972e6);
public static final Planet JUPITER = new Planet(1.9e+27, 7.1492e7);
public static final Planet SATURN = new Planet(5.688e+26, 6.0268e7);
public static final Planet URANUS = new Planet(8.686e+25, 2.5559e7);
public static final Planet NEPTUNE = new Planet(1.024e+26, 2.4746e7);
Anladığım kadarıyla, kazablanka'nın cevabı bunu tatmin eden tek cevap.
public static final
değerleri girilebilen ve mutlakaint
s olmayan alanlardan bahsettiği için yinelenmemiş olabilir .