小编z7s*_*g Ѫ的帖子

为什么Double.valueof javadoc说它缓存值,当它没有?

在OpenJDK中,对于方法:

public static Double valueOf(double d)
Run Code Online (Sandbox Code Playgroud)

javadoc说:

返回表示指定double值的Double实例.如果不需要新的Double实例,通常应优先使用此方法,而不是构造函数Double(double),因为此方法可能通过缓存频繁请求的值来显着提高空间和时间性能.

这是实际的代码:

public static Double valueOf(double d) {
    return new Double(d);
}
Run Code Online (Sandbox Code Playgroud)

缓存是谎言!这里发生了什么?

java javadoc

53
推荐指数
4
解决办法
2760
查看次数

Hamcrest测试地图包含来自另一个地图的所有条目

我想检查地图是否包含某组条目.允许包含其他不在的条目expectedMap.我目前有以下断言:

assertThat(expectedMap.entrySet(), everyItem(isIn(actualMap.entrySet())));
Run Code Online (Sandbox Code Playgroud)

虽然这确实有效,但它打印的失败消息令人困惑,因为预期和接收的参数已从正常使用中反转.有没有更好的方法来写它?

java hamcrest

6
推荐指数
1
解决办法
4712
查看次数

如何将solr字符串字段截断为10个字符?

我已经为索引创建了以下字符串字段.

<fieldType name="short_text_for_sort" class="solr.StrField" omitNorms="true" sortMissingLast="true" omitTermFreqAndPositions="true" positionIncrementGap="100">
  <analyzer type="index">
    <!-- TODO: truncate to 10 characters-->
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ASCIIFoldingFilterFactory"/>
  </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

如何将此字段限制为10个字符?我需要编写自己的过滤器吗?

indexing solr

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

如何找到具有特定标签的方式成员的点周围的所有节点?

我想找到某个半径范围内的所有高速公路成员节点。不使用交集,我看不到如何做到这一点,但是,API中没有。例如我有这个:

[out:json];
way(around:25, 50.61193,-4.68711)["highway"];>->.a; 
(node(around:25, 50.61193,-4.68711) - .a);
out;
Run Code Online (Sandbox Code Playgroud)

结果集不仅.a包含我想要的节点,而且还包含半径以外的节点-如果路途很长,则可能会很大。我可以找到不需要的半径内的所有节点,如上面的完整查询所返回。现在,我始终可以执行第二个around查询,并在Overpass之外执行两个结果集的交集。或者,我可以做另一件事:

[out:json];
way(around:25, 50.61193,-4.68711)["highway"];>->.a; 
(node(around:25, 50.61193,-4.68711) - .a)->.b;
(node(around:25, 50.61193,-4.68711) - .b);
out;
Run Code Online (Sandbox Code Playgroud)

这给出了我想要的结果,但是可以简化吗?我确定我在这里想念什么。

overpass-api

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

是否最好返回一个匿名类或一个对象用作'struct'?

考虑到内存使用,时钟周期或良好的pythonic风格,最好这样做:

def func():
    class A:
       x = 10
       y = 20
    return A
Run Code Online (Sandbox Code Playgroud)

或这个

def func():
    o = object()
    o.x = 10
    o.y = 20
    return o
Run Code Online (Sandbox Code Playgroud)

或者是其他东西?我不想返回字典,因为我不喜欢使用方括号.

python class object

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

标签 统计

java ×2

class ×1

hamcrest ×1

indexing ×1

javadoc ×1

object ×1

overpass-api ×1

python ×1

solr ×1