2014-10-19 164 views
0

是否有可能在Java中返回一個枚舉類型變量?如何使get()方法返回Java中的枚舉類型?

例如:

public static class PhoneContact extends Contact 
{ 
    private String phone; 
    private enum Operator { VIP, ONE, TMOBILE }; 

    public PhoneContact(String date, String phone) 
    { 
     super(date); 
     this.phone = phone; 
    } 

    public String getPhone() 
    { 
     return phone; 
    } 

    public Operator getOperator() 
    { 
     // return Operator; 
    } 
} 

這樣做收益率在錯誤的語句:「操作不能被解析爲一個變量」。有人可以提供一個解釋這種現象,以及如何能夠在未來解決它。

在此先感謝!

+1

什麼是_enum類型變量_?你知道枚舉是什麼嗎?你知道什麼是回報陳述嗎? – 2014-10-19 22:19:54

回答

0

是;你只需要這樣做:

public Operator getOperator() 
{ 
    return Operator.VIP; //Or similar. 
} 
4

你的枚舉不應該在課堂上是私人的。它應該在它自己的Operator.java文件中。這樣你可以返回它,並且它對於PhoneContact類以外的類是有意義的。否則,您必須將其公開於其中,並提及它是PhoneContact.Operator。例如,

public PhoneContact.Operator getOperator() { 
    return operator; 
} 

但同樣好,使之成爲獨立的類:

Operator.java:

public enum Operator { 
    VIP, ONE, TMOBILE 
} 

做到這一點,它將會是有意義的編譯器:

public Operator getOperator() { 
    return operator; 
} 

話雖如此,pl輕鬆讓我們知道爲什麼您的PhoneContact類設置爲內部靜態類。 PhoneContact作爲一個非靜態的獨立課程在它自己的文件中不是更好嗎?


編輯
而按照索蒂里奧斯Delimanolis的評論,你從來沒有創建一個運營商領域。所以

public class PhoneContact extends Contact { 
    private String phone; 
    private Operator operator; 

    public PhoneContact(String date, String phone) 
    { 
     super(date); 
     this.phone = phone; 
    } 

    public String getPhone() 
    { 
     return phone; 
    } 

    public void setOperator(Operator operator) { 
     this.operator = operator; 
    } 

    public Operator getOperator() 
    { 
     return operator; 
    } 
} 
+0

@SotiriosDelimanolis:好點!回答編輯,謝謝!我完全錯過了。 – 2014-10-19 22:26:24