I have two packages - x and y.
x contains the Student
class and the Grade
enum.
y contains the Klass
class.
Why is the type Student.Grade.C
not recognized in the Klass
class in package y?
Do I need to define it in its own file and make it public?
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;
}
Yes, you do have to declare that enum public. You shouldn't have to have it in its own file.
You would access just like your example Student.Grade.C
;
You could import Student.Grade
and just use C
in your code.
By not using public
, protected
or private
, the Grade enum has the default access level - meaning only other classes in the same package can use it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With