是否可以在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;
}
}
在错误陈述中执行此操作:"操作员无法解析为变量"。有人可以为这种现象提供解释,以及如何在将来解决这个问题。
提前致谢!
答案 0 :(得分: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;
}
说完这些,请告诉我们为什么将PhoneContact类设置为内部静态类。对于PhoneContact来说,将它作为一个非静态的独立类放在自己的文件中会不会更好?
修改强>
根据Sotirios 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;
}
}
答案 1 :(得分:0)
是;你只需要这样做:
public Operator getOperator()
{
return Operator.VIP; //Or similar.
}