我是否需要在其自己的文件中将枚举定义为“公共”,以便可以在其自己的包之外识别它?

时间:2010-09-26 13:44:06

标签: java enums packages visibility

我有两个包 - x和y。

x包含Student类和Grade枚举。

y包含Klass类。

为什么在包y的Student.Grade.C类中无法识别类型Klass

我是否需要在自己的文件中定义并将其公开?

package x;

enum Grade { A, B, C, D, F, INCOMPLETE };

public class Student {

// blah, blah, member variables, getters, setters, constructors    

}


package y;

public class Klass {

 // This enum type is not recognized in this package
 public static final MINIMUM_GRADE = Student.Grade.C; 

}

2 个答案:

答案 0 :(得分:10)

是的,您必须声明枚举公开。你不应该把它放在自己的文件中。

您可以像示例Student.Grade.C;

一样访问

您可以import Student.Grade在代码中使用C

答案 1 :(得分:4)

如果不使用publicprotectedprivate,则成绩枚举有the default access level - 这意味着只有同一个包中的其他类才能使用它。