2016-04-12 28 views
1
public enum itemType{ 
    COMPANYY_WIDE("Company"), 
    DEPARTMENTAL("Departmental"), 
    PROJECT_SPECIFIC("Project"); 

    private String itemCode; 

    private itemType(String dbCode){ 
     this.itemCode=dbCode; 
    } 

    public static void main(String[] args) { 
     itemType type3=new itemType("Project");// line 1 
     itemType type2=itemType.valueOf("PROJECT_SPECFIFIC");// line 2 
     itemType type4=itemType.values()[0];// line 3 
     itemType type1=itemType.DEPARTMENTAL; 
    } 
} 

Dolayısıyla, enum itemType'ın 4 türü vardır ve her türde de dbcode olan bir öznitelik öğesi kodu vardır. Enum türlerini ana yaklaşımda farklı yaklaşımlarla başlatmayı deniyorum ama biraz kafa karışıklığım var. Neden 1 numaralı hat çalışmıyor? Neden 2. hat ve 3. hat çalışacak?Enum type initialized confusion, Java

+0

okuyabilir: http://stackoverflow.com/questions/19971982/enum-class-initialization-in-java – Erick

cevap

0

Java'da enum, sabit sayıda nesneye sahip özel bir tür sınıfıdır.

Sizin durumunuz için,tam olarak COMPANYY_WIDE, DEPARTMENTAL, adlı üç nesneye sahiptir. enum için çalışma zamanında yeni bir nesne oluşturamazsınız.

Buna bakmak bu Java Doc Java Enum

+0

Güzel açıklama! yeni bir nesne oluşturamadığımız için, enum içinde bir kurucuya sahip olmanın anlamı nedir? @rev_dihazum – user6119494

+0

@ user6119494 yapıcı, öğeyi başlangıçta yüklemek için yalnızca bir kez kullanılır. – flakes

+0

Oluşturucu, "enum" özelliklerini ayarlamak için kullanılır. örneğin, enum türünüzün başka bir özelliğine sahipseniz, yani 'private int itemId;' 'yapıcınızı' 'itemType (String dbCode, int id) olarak değiştirmelisiniz { this.itemCode = dbCode; this.itemId = id; } '' ve COMPANYY_WIDE ("Şirket", 1) '' –