我的java类如下
public class Test {
protected enum TestEnum {A, B, C};
public Test(TestEnum te) {
}
}
这是我的斯卡拉
class ScalaEnum(myEnum: TestEnum) extends Test(myEnum) {
}
我收到以下错误消息
无法在对象Test中访问对象Test中的TestEnum类不允许访问 protected 类TestEnum,因为将包XXX中的类ScalaEnum封装为包YYY中定义了目标的包Test中的对象Test的子类
最佳答案
正如@Alex和@ Jean-Phillipe所说,这与您试图访问一个枚举并没有多大关系,而与内部类枚举是隐式静态的这一事实没有多大关系:例如,参见this answer。
这意味着您正在与this limitation竞争。对于Scala 2.9.1,将TestEnum
更改为公开可以解决此问题。
话虽如此,尽管Martin强烈反对删除该限制,但是您的代码在Scala 2.10中可以按预期工作。
关于scala - 如何从Scala访问Java枚举?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6703545/