小编Yan*_*gne的帖子

如何从插件添加的libraryDependencies中删除依赖项?

我有一个非常经典build.sbt的Play 2.3 Scala项目,具有以下libraryDependencies设置:

libraryDependencies ++= Seq(
  "org.scalatestplus" % "play_2.10" % "1.1.0" % "test"
  "org.mockito" % "mockito-core" % "1.9.5" % "test"
)

lazy val portal = (project in file(".")).enablePlugins(PlayScala)
Run Code Online (Sandbox Code Playgroud)

PlayScala插件增加specs2了"污染"类路径的依赖性,并使IDE中的导入更加困难.

如何从中删除依赖项libraryDependencies

scala sbt playframework playframework-2.3

10
推荐指数
2
解决办法
4032
查看次数

Java Generics:获取一个Class <Collection <T >>?

我在使用泛型时遇到了麻烦.给出以下示例:

class A<T> {
  public A(Class<T> myType){
  }
}

class B<E> extends A<Collection<E>> {
  public B(Class<E> myEType){
    super(???);
  }
}
Run Code Online (Sandbox Code Playgroud)

什么 ???应该 ? Collection.class不工作...... Collection<E>.class都没有. (Class<Collection<E>>)Collection.class不工作...

如果有一个java泛型大师,我需要帮助......:/

java generics

7
推荐指数
1
解决办法
4074
查看次数

带有@MappedSuperclass 的 JPA 静态元模型(带有一些 Generation Gap 模式)

我试图用 JPA 实体实现 Generation Gap Pattern。这是我们选择的解决方案( <-- 是继承)

BaseEntity <-- EntityGenerated <-- Entity
Run Code Online (Sandbox Code Playgroud)

EntityGenerated 类型是抽象的并使用@MappedSuperclass 映射,所有字段都使用正确的映射注释生成,关系指向具体的子类,而不是 Generated 。

Entity 是一个具体的类型,只有当类不存在时才生成,最初只有用@Entity 注释的类声明。其他映射属性(如@Table 等)位于生成的 orm.xml 中。

现在,当我们生成 jpa 静态元模型(使用 hibernate 或 openjpa 元模型生成器)时,生成的类如下所示:

public class BaseEntity_ {
    public static volatile SingularAttribute<PersistentDomainObject,Long> id;
    public static volatile SingularAttribute<PersistentDomainObject,Long> timeStamp;
}

public class UserGenerated_ extends BaseEntity_ {
    public static volatile SetAttribute<UserGenerated,Group> groups;
}

public class User_ extends UserGenerated_  {
}
Run Code Online (Sandbox Code Playgroud)

如果我想在 jpa 条件查询中使用 User_,我将执行以下操作:

CriteriaQuery<User> query = criteriaBuilder.createQuery(User.class);
Root<User> root = query.from(User.class);
query.where(root.get(User_.groups).in(paramGroups));
Run Code Online (Sandbox Code Playgroud)

但它不会编译.... User_.groups …

code-generation jpa criteria-api metamodel

5
推荐指数
0
解决办法
2241
查看次数

Scala推理:1次评估失败,中间值成功

我是scala的初学者,不明白这里发生了什么:

鉴于:

val reverse:Option[MyObject] = ...
Run Code Online (Sandbox Code Playgroud)

myObject.isNaire返回布尔值.

如果我做 :

val v:Option[Boolean] =  reverse.map(_.isNaire)
val b:Boolean = v.getOrElse(false)
Run Code Online (Sandbox Code Playgroud)

这行得通.

现在,如果我这样做:

val b:Boolean = reverse.map(_.isNaire).getOrElse(false)
Run Code Online (Sandbox Code Playgroud)

它无法编译 type mismatch: found Any, required Boolean


编辑:谢谢Beryllium,通过制作SSCCE,我找到了解释的开始.在第一个示例中,myObject是一个java类,因此isNaire是一个java.lang.Boolean.我认为隐式转换应该使这个透明,所以解释仍然是受欢迎的.

class Test(val naire:java.lang.Boolean)

class Other {
  val testValue = Some(new Test(true))
  def mysteriousCompilationError:Boolean = testValue.map(_.naire).getOrElse(false)
}
Run Code Online (Sandbox Code Playgroud)

注意:ScalaCompiler是2.10.2

scala type-inference

2
推荐指数
1
解决办法
128
查看次数