首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbt中核心库的约束

sbt中核心库的约束
EN

Stack Overflow用户
提问于 2014-10-13 13:43:21
回答 2查看 31关注 0票数 0

有没有办法在sbt中为核心库创建约束?

例如:

我不希望任何人使用Java类,是否有一种方法可以为这些类的所有直接导入创建编译错误/警告?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-14 10:07:31

使用疣残留。修改自述的示例,这应该类似于(未经测试)

代码语言:javascript
复制
import org.brianmckenna.wartremover.{WartTraverser, WartUniverse}

object JavaDate extends WartTraverser {
  def apply(u: WartUniverse): u.Traverser = {
    import u.universe._

    val JavaDate: Type = typeOf[java.util.Date]
    val JavaCal: Type = typeOf[java.util.Calendar]
    new Traverser {
      override def traverse(tree: Tree) {
        tree.tpe match {
          case JavaDate =>
            u.error(tree.pos, "java.util.Date not allowed")
          case JavaCal =>
            u.error(tree.pos, "java.util.Calendar not allowed")
          case _ =>
        }
        super.traverse(tree)
      }
    }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-13 14:18:17

我从未见过任何东西,但是您只能导入所需的子类,而不必只包含顶级的子类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26341480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档