小编Ale*_*nov的帖子

JPA:哪些实现支持在事务外部延迟加载?

即使在创建实体管理器的实体管理器不再可用之后,EclipseLink也可以在实体中加载延迟关系.使用Hibernate 这不起作用,或者至少在该帖子时没有.

其他提供商怎么样?特别是OpenJPA和DataNucleus?

这有什么缺点(除了更复杂的实现)?

hibernate jpa openjpa eclipselink datanucleus

14
推荐指数
3
解决办法
7338
查看次数

断言值的简明方法与ScalaTest中的给定模式匹配

有没有一种很好的方法可以检查ScalaTest中的模式匹配是否成功?scalatest-users邮件列表中提供了一个选项:

<value> match {
  case <pattern> =>
  case obj => fail("Did not match: " + obj)
}
Run Code Online (Sandbox Code Playgroud)

但是,它没有组成(例如,如果我想断言列表的确切2个元素使用Inspectors API匹配模式).我可以编写一个匹配部分函数文字的匹配器,如果已定义则可以成功(如果我想在消息中获取模式,则必须是一个宏).还有更好的选择吗?

scala scalatest

13
推荐指数
1
解决办法
3105
查看次数

使用迭代器编写自定义IEnumerator <T>

如何编写IEnumerator<T>需要维护某些状态的自定义实现,并仍然可以使用迭代器块来简化它?我能想到的最好的是这样的:

public class MyEnumerator<T> : IEnumerator<T> {
    private IEnumerator<T> _enumerator;
    public int Position {get; private set;} // or some other custom properties

    public MyEnumerator() {
        Position = 0;
        _enumerator = MakeEnumerator();
    }

    private IEnumerator<T> MakeEnumerator() {
        // yield return something depending on Position
    } 

    public bool MoveNext() {
        bool res = _enumerator.MoveNext();
        if (res) Position++;
        return res;
    }

    // delegate Reset and Current to _enumerator as well
}

public class MyCollection<T> : IEnumerable<T> {

    IEnumerator<T> IEnumerable<T>.GetEnumerator() {
        return …
Run Code Online (Sandbox Code Playgroud)

c# iterator

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

改变SWT综合体儿童的顺序

在我的情况下,我有两个孩子SashForm,但这个问题适用于所有人Composite.

class MainWindow {
    Sashform sashform;
    Tree child1 = null;
    Table child2 = null;

    MainWindow(Shell shell) {
        sashform = new SashForm(shell, SWT.NONE);
    }

    // Not called from constructor because it needs data not available at that time
    void CreateFirstChild() {  
        ...
        Tree child1 = new Tree(sashform, SWT.NONE);
    }

    void CreateSecondChild() {
        ...
        Table child2 = new Table(sashform, SWT.NONE);
    }    
}
Run Code Online (Sandbox Code Playgroud)

我事先不知道这些方法的调用顺序.我怎样才能确保它child1位于左侧和child2右侧?或者,有没有办法改变他们创建sashform 后的子女的顺序?

目前我最好的想法就是放置这样的占位符:

class MainWindow {
    Sashform sashform;
    private Composite …
Run Code Online (Sandbox Code Playgroud)

java swt

11
推荐指数
1
解决办法
3796
查看次数

为什么Scala类型推断在这里失败?

我在Scala中有这个类:

object Util {
  class Tapper[A](tapMe: A) {
    def tap(f: A => Unit): A = {
      f(tapMe)
      tapMe
    }

    def tap(fs: (A => Unit)*): A = {
      fs.foreach(_(tapMe))
      tapMe
    }
  }

  implicit def tapper[A](toTap: A): Tapper[A] = new Tapper(toTap)
}
Run Code Online (Sandbox Code Playgroud)

现在,

"aaa".tap(_.trim)
Run Code Online (Sandbox Code Playgroud)

不编译,给出错误

错误:扩展函数缺少参数类型((x $ 1)=> x $ 1.trim)

为什么不推断类型String?从错误看来,隐式转换似乎触发了(否则错误将沿着" tap不是类的成员String"的行).似乎转换必须是Tapper[String],这意味着参数的类型是String => Unit(或(String => Unit)*).

有趣的是,如果我注释掉任何一个tap定义,那么它就会编译.

scala overloading type-inference overload-resolution

11
推荐指数
1
解决办法
867
查看次数

获取gen_server/gen_fsm状态以进行调试

是否有可能获得gen_server进程的当前状态(可能是通过发送一些系统消息)?它在调试时很有用.

当然,我可以添加一条消息,将当前状态返回到handle_call:

get_state(Server) -> gen_server:call(Server, '$get_state').

%% in every gen_server I want to debug
...
handle_call('$get_state', _From, State) ->
  {reply, State, State};
...
Run Code Online (Sandbox Code Playgroud)

但是内置了什么(即使它有点hacky)?

erlang gen-server

11
推荐指数
2
解决办法
4205
查看次数

是否可以将TypeTag转换为Manifest?

我们的库使用TypeTags,但现在我们需要与需要清单的另一个库进行交互.有没有简单的方法从TypeTag创建清单?

reflection scala scala-2.10

11
推荐指数
2
解决办法
1715
查看次数

verboseCheck in QuickCheck 2?

verboseCheckQuickCheck 1中的功能似乎在QuickCheck 2中不存在(或者至少,我找不到它).有没有其他方法可以显示测试期间使用哪些值?

haskell quickcheck

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

检查Erlang中的活动计时器

有一个简单的方式来获得所有当前正在等待计时器的名单开始erlang:send_after,erlang:apply_after等在二郎山?

erlang

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

观察Haskell中的懒惰

是否可以编写一个Haskell函数,该函数取决于值是已经计算还是是thunk?例如,如果通常lazyShow :: [Int] -> String显示thunks as ?和计算值,我们会看到GHCi

> let nats = [0..]

> lazyShow nats
0 : ?

> nats !! 5    
5

> lazyShow nats
0 : 1 : 2 : 3 : 4 : ? 
Run Code Online (Sandbox Code Playgroud)

haskell lazy-evaluation

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