相关疑难解决方法(0)

JVM是否会阻止尾调用优化?

我在这个问题上看到了这个引用:什么是构建Web服务的好函数语言?

特别是Scala不支持尾调用消除,除了自递归函数,这限制了你可以做的组合种类(这是JVM的一个基本限制).

这是真的?如果是这样,那么创建这个基本限制的JVM是什么呢?

java jvm scala tail-recursion

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

将许多参数传递给方法的最佳实践?

偶尔,我们必须编写接收许多参数的方法,例如:

public void doSomething(Object objA , Object objectB ,Date date1 ,Date date2 ,String str1 ,String str2 )
{
}
Run Code Online (Sandbox Code Playgroud)

当我遇到这种问题时,我经常将参数封装到地图中.

Map<Object,Object> params = new HashMap<Object,Object>();
params.put("objA",ObjA) ;

......

public void doSomething(Map<Object,Object> params)
{
 // extracting params 
 Object objA = (Object)params.get("objA");
 ......
 }
Run Code Online (Sandbox Code Playgroud)

这不是一个好的做法,将params封装到地图中完全是浪费效率.好处是,干净的签名,容易添加其他params与最少的修改.这种问题的最佳做法是什么?

java parameters performance parameter-passing

81
推荐指数
8
解决办法
8万
查看次数