小编Ser*_*gey的帖子

找出对象列表是否包含具有指定字段值的内容?

我有一个从数据库收到的DTO列表,他们有一个ID.我想确保我的列表包含具有指定ID的对象.显然,在这种情况下使用期望字段创建一个对象将无济于事,因为contains()调用Object.equals(),它们将不相等.

我想出了一个类似的解决方案:创建一个接口HasId,在我的所有DTO中实现它,并继承带有方法的新类的ArrayList contains(Long id).

public interface HasId {
    void setId(Long id);
    Long getId();
}

public class SearchableList<T extends HasId> extends ArrayList<T> {
    public boolean contains(Long id) {
        for (T o : this) {
            if (o.getId() == id)
                return true;
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我不能将List和ArrayList强制转换为SearchableList ......我会接受它,但我想确保我不是在发明自行车.

编辑(2016年10月):

当然,随着Java 8中lambda的引入,这样做的方法很简单:

list.stream().anyMatch(dto -> dto.getId() == id);
Run Code Online (Sandbox Code Playgroud)

java contains list arraylist object

28
推荐指数
2
解决办法
6万
查看次数

Akka Streams - 如何在图形中保持辅助接收器的物化值

我有一个函数返回一个函数,Flow其逻辑涉及将图形的一些元素Sink传递给作为参数传递的辅助.我想保留辅助Sink的物化值,这样我就可以在构造流启动时对其值进行操作.

这是我正在建设的流程的粗略图片:

IN ~> (logic: In => Out) ~> Broadcast ~> AuxFilter ~> AuxSink
                                      ~> OutFilter ~> OUT
Run Code Online (Sandbox Code Playgroud)

示例代码:

case class Incoming()
trait Element
case class Outcoming() extends Element
case class Persistent() extends Element

def flow[Mat](auxSink: Sink[Persistent, Mat]): Flow[Incoming, Outcoming, NotUsed] = {
  val isPersistent = Flow[Element].collect {
    case persistent: Persistent => persistent
  }

  val isRunning = Flow[Element].collect {
    case out: Outcoming => out
  }

  val magicFlow: Flow[Incoming, Element, NotUsed] = Flow[Incoming]
    .map(_ => …
Run Code Online (Sandbox Code Playgroud)

scala akka akka-stream

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

使用基于文件的用户注册表在WebSphere 7中对用户/组映射的安全角色

我正在尝试进行基于表单的身份验证.我正确配置了部署描述符,IBM Infocenter中列出的所有操作都与"仅使用基于文件的注册表启用用户身份验证"相关,将我的用户映射到适当的角色,单击确定,测试并且工作正常.但是当我转到管理控制台中的其他内容时,我意识到"安全角色到用户/组映射"中没有"正常","保存"或"应用"按钮,因此我的所有更改都只能采取措施当我留在那个页面上时,只要我点击控制台中的链接,所有更改都会立即重置.我认为它可能是控制台中的一个错误.有解决方案吗?也许是一种使用这些属性直接编辑xml文件的方法?

提前致谢.

security authentication websphere role

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

scala 中的模拟生成 java.lang.NoSuchMethodException

嘿,我正在尝试测试以下课程:

class Foo {
 def f: Int = 4 + g

 def g: Int = 2
}
Run Code Online (Sandbox Code Playgroud)

我的测试如下:

class FooSpec extends PlaySpec with MockFactory {
  val foo = new Foo()
  "Foo" must {
    "Call function f" in {
        (foo.g _)
        .expects()
        .once()
        .returns(5)

        foo.f must be (9)
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

我的测试失败说:

java.lang.NoSuchMethodException: Foo.mock$g$0()
java.lang.Class.getMethod(Unknown Source)
...
Run Code Online (Sandbox Code Playgroud)

我不确定为什么...

我正在使用 scalatest 和 scalamock :

"org.scalatestplus.play" %% "scalatestplus-play" % "1.5.0" % "test"
"org.scalamock" %% "scalamock-scalatest-support" % "3.2.2" % "test"
Run Code Online (Sandbox Code Playgroud)

testing scala playframework scalamock

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

SBT 0.13.11无法在代理后面下载依赖项

在代理服务器后面使用Windows 7、64位。

我已经下载并安装了最新版本的SBT(0.13.11),Scala(2.11.8)和IntelliJ IDEA社区(2016.1.2)。当我尝试在IntelliJ中启动新项目时,我可以使用的最新SBT版本是0.13.8,而不是0.13.11。有谁知道为什么会这样吗?如果我尝试开始一个新项目,则会收到错误消息:

错误:导入SBT项目时出错:
...

[警告] ::无法解决的依赖::
[警告] :::::::::::::::::::::::::::::::::::::::::::::::::
[警告] :: org.scala-lang#scala-library; 2.11.8:未找到
[警告] :: org.scala-lang#scala-compiler; 2.11.8:未找到
[警告] :::::::::::::::::::::::::::::::::::::::::::::::::
[警告] 
[警告]注意:未解决的依赖项路径:
[警告] org.scala-lang:scala-library:2.11.8((sbt.Classpaths)Defaults.scala#L1203)
[警告] +-默认值:untitled1_2.11:1.0
[警告] org.scala-lang:scala-compiler:2.11.8
[警告] +-默认值:untitled1_2.11:1.0
[trace]禁止堆栈跟踪:对完整输出运行'last *:update'。
[trace]堆栈跟踪被抑制:对完整输出运行'last :ssExtractDependencies'。
[错误](:update)sbt.ResolveException:未解决的依赖项:org.scala-lang#scala-library; 2.11.8:找不到
[错误]未解决的依赖关系:org.scala-lang#scala-compiler; 2.11.8:找不到
[错误](*:ssExtractDependencies)sbt.ResolveException:未解决的依赖关系:org.scala-lang#scala-library; 2.11.8:找不到
[错误]未解决的依赖关系:org.scala-lang#scala-compiler; 2.11.8:找不到
[错误]总时间:4秒,已于2016年5月25日上午10:51:00完成
Java HotSpot(TM)64位服务器VM警告:忽略选项MaxPermSize = 384M;在8.0中删除了支持
提起_JAVA_OPTIONS:-Djava.net.preferIPv4Stack = true

请参阅C:\ Users \ Rk.IdeaIC2016 \ system \ log \ sbt.last.log中的完整日志

修改了一会儿之后,我发现sbt about在终端上键入内容时,我被告知我具有SBT版本0.13.8,该版本是针对Scala 2.10.4构建的。看起来不对!如果我进入IntelliJ并选择SBT构建为0.13.8,Scala构建为2.10.4,我不会出错!

因此,这非常令人困惑,因为尚不清楚代理是否是问题所在。似乎如果我可以将SBT更新到版本0.13.11,那么整个工作就可以了。

任何见识或帮助将不胜感激-我很高兴学习Scala,但是这些技术难题使我停滞不前。

编辑:当我sbt compile在项目目录中运行时,我收到以下输出: 在此处输入图片说明

scala intellij-idea sbt

0
推荐指数
1
解决办法
3753
查看次数