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

为什么我需要jsr305在scala中使用番石榴?

发布时间:2020-12-16 09:40:11 所属栏目:安全 来源:网络整理
导读:我有以下scala文件: object SGuavaTryout { com.google.common.cache.CacheBuilder.newBuilder()} 我在classpath中使用guava-11.0.2.jar进行编译。我的scala 2.9.1编译器(eclipse插件和普通scalac)抱怨: error while loading CacheBuilder,Missing depende
我有以下scala文件:

object SGuavaTryout {
  com.google.common.cache.CacheBuilder.newBuilder()
}

我在classpath中使用guava-11.0.2.jar进行编译。我的scala 2.9.1编译器(eclipse插件和普通scalac)抱怨:

error while loading CacheBuilder,Missing dependency 
  'class javax.annotation.CheckReturnValue',required by 
  D:develeclipse-workspaceScala Spielwieseguava-11.0.2.jar
  (com/google/common/cache/CacheBuilder.class)

要编译,我需要添加jsr305(jsr305-1.3.9.jar)到构建路径。 java等效编译只要没有jsr305:

public class JGuavaTryout {
  public void tryout() {
    com.google.common.cache.CacheBuilder.newBuilder();
  }
}

任何想法为什么scala需要jsr305?有没有正式的jsr305实现与番石榴一起使用?

谢谢! – 乔治

解决方法

这是因为Scala编译器的设计方式,它需要一个类的所有类型在编译时可用,而Java编译器则无关紧要。

(编辑:李大同)

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

    推荐文章
      热点阅读