小编edi*_*dio的帖子

在Spring-Hibernate项目中初始化实体集合(POJO)的正确方法是什么?

我有一个POJO类,比如Foo,它有一组其他实体实例,比如说吧.此类项目还有标准的misc类:Foo和Bar的服务和dao.

我希望BarService获得与某些Foo相关联的Bar实例集.现在我有以下代码,我相信它在概念上很糟糕.

 
public class Foo {
    Set<Bar> bars;

    public Set<Bar> getBars() {
        if (bars == null)
            return ( bars = new HashSet() );
        return bars;
    }
}
Run Code Online (Sandbox Code Playgroud)
 
public class BarServiceImpl {
    public List<Bar> getListOfBars(Foo foo) {
        return new ArrayList(foo.getBars());
    }
}
Run Code Online (Sandbox Code Playgroud)

3个问题:初始化Foo's Set哪个更好?哪些特定的集合和列表更适合此类目的?我目前的实施有哪些概念性问题,以及如何做得更好?

提前致谢.

java architecture collections spring hibernate

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

使用cats.effect时,value flatMap不是类型参数F [Long]的成员

这或许曾多次被问过,但我找到的建议都没有帮助.

我有一个简单的Scala代码,生成长数取决于一些副作用.我在IO monad中包装东西,但根据最小功率原则,我实际上是在声明我的功能F[_]: Effect.现在代码不会编译,我不明白为什么,请建议可能出错的地方

import cats.effect.{Clock, Effect}
import cats.syntax.all._
import java.util.concurrent.TimeUnit


...

  def generateId[F[_]: Effect](rid: Long)(implicit F: Effect[F], clock: Clock[F]): F[Long] =
    for {
      currentTimeNanos <- clock.realTime(TimeUnit.NANOSECONDS)
      tid              <- F.delay(Thread.currentThread().getId)
    } yield
      (tid << 40 /*    */ & 0xFFFFFF0000000000L) |
        (rid << 16 /*  */ & 0x000000FFFFFF0000L) |
        (currentTimeNanos & 0x000000000000FFFFL)

Run Code Online (Sandbox Code Playgroud)
[error] /.../package.scala:34:41: value flatMap is not a member of type parameter F[Long]
[error]       currentTimeNanos <- clock.realTime(TimeUnit.NANOSECONDS)
[error]                                         ^
[error] /.../package.scala:35:34: value map is not a member of …
Run Code Online (Sandbox Code Playgroud)

scala scala-cats cats-effect

4
推荐指数
1
解决办法
354
查看次数