我有一个类将枚举类型声明为:
public enum HOME_LOAN_TERMS {FIFTEEN_YEAR, THIRTY_YEAR};
这种类型可以在另一个类中使用吗?我基本上是在尝试完成一项家庭作业,我们有两种类型的贷款和一种loanManager类。当我尝试在我的loanManager类中使用不扩展或实现贷款类的HOME_LOAN_TERMS.THIRTY_YEAR时,我收到错误消息,说它“找不到符号HOME_LOAN_TERMS”。所以我不知道我的loanManager类是否需要实现两个不同的贷款类。感谢。
我目前正在研究这个,所以我知道它并不完整,但这里是我试图使用它的地方:
import java.util.ArrayList;
public class AcmeLoanManager
{
public void addLoan(Loan h)
{
loanArray.add(h);
}
/*
public Loan[] getAllLoans()
{
}
public Loan[] findLoans(Person p)
{
}
public void removeLoan(int loanId)
{
}
*/
private ArrayList<Loan> loanArray = new ArrayList<Loan>(5);
public static void main(String[] args)
{
AcmeLoanManager aLoanManager = new AcmeLoanManager();
Person aPerson = new Person("Crystal", "Twix", "619-111-1234", "ct@yahoo.com");
HomeLoan aHomeLoan = new HomeLoan(aPerson, 400000, 5, HOME_LOAN_TERMS.THIRTY_YEAR);
aLoanManager.addLoan(aHomeLoan);
}
}
答案 0 :(得分:7)
您必须指定类型:
HOME_LOAN_TYPES type = HOME_LOAN_TYPES.FIFTEEN_YEAR;
顺便说一下,不要对枚举使用这种命名约定。使用与类相同的驼峰案例:
public enum HomeLoanType {
FIFTEEN YEAR,
THIRTY_YEAR
}
如果您不想指定类型,可以执行静态导入:
import static package.name.HomeLoanType.*;
...
HomeLoanType type = FIFTEEN_YEAR;
最后,关于Java枚举的最好的事情之一是它们可以具有状态和行为。例如:
public enum HomeLoanType {
FIFTEEN YEAR(15),
THIRTY_YEAR(30);
private final int years;
HomeLoanType(int years) {
this.year = years;
}
public int getYears() {
returns years;
}
}
答案 1 :(得分:1)
是的,因为它是公开的,你可以从另一个班级使用它。
如果它在您的贷款类中,您可以编写Loan.HOME_LOAN_TERMS.FIFTEEN_YEAR以从其他类别引用它。