如何从Scala访问Java枚举?
发布时间:2020-12-16 08:52:32 所属栏目:安全 来源:网络整理
导读:我的 java类如下 public class Test { protected enum TestEnum {A,B,C}; public Test(TestEnum te) { }} 这是我的Scala class ScalaEnum(myEnum: TestEnum) extends Test(myEnum) {} 我收到以下错误消息 对象中的类TestEnum无法在对象Test中访问Test不允许
我的
java类如下
public class Test { protected enum TestEnum {A,B,C}; public Test(TestEnum te) { } } 这是我的Scala class ScalaEnum(myEnum: TestEnum) extends Test(myEnum) { } 我收到以下错误消息 对象中的类TestEnum无法在对象Test中访问Test不允许访问受保护的类TestEnum,因为封装类XXX中的类ScalaEnum不是对象的子类在YYY包中定义了target 解决方法
正如@Alex和@ Jean-Phillipe所说,这与你试图访问枚举的事实没什么关系,更多的是与内部类枚举是隐式静态这一事实有关:例如,参见
this answer.
这意味着你正在迎战this limitation.使用Scala 2.9.1将TestEnum改为公开解决问题. 尽管如此,尽管Martin强烈反对删除限制,但您的代码与Scala 2.10一样正常运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |