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