加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何从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一样正常运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读