小编Seb*_*ber的帖子

Guava - 如何应用在Iterable上返回Void的函数

我只是想知道应用返回函数的最佳方法VoidIterable/Collection什么?

我的用例是:

  • 我有一个Animal对象列表
  • 我想呼吁列表中的每个动物的eat()功能

我有一个Function<Animal,Void>电话input.eat();

事实证明,当我打电话时:

Collections2.transform(animalList,eatFunction);
Run Code Online (Sandbox Code Playgroud)

我不觉得这很优雅,因为我不是在寻找转换,而只是为了没有任何输出的应用程序.最糟糕的是,由于Guava转换正在返回视图,因此它甚至无法工作.

什么工作正常是:

Lists.newArrayList( Collections2.transform(animalList,eatFunction) );
Run Code Online (Sandbox Code Playgroud)

但它并不优雅.使用Guava以函数方式将Void函数应用于Iterable/Collection的最佳方法是什么?

编辑:

  • 相关问题:Guava供应商<T>的逆转
  • 同样正如Dzik指出的那样,如果您使用的是Java8而不是Guava,那么就是Consumer类:https://stackoverflow.com/a/32222080/82609

java functional-programming guava

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

GET HTTP请求有效负载

我正在设计一个API,我想知道在GET请求上发送JSON有效负载是否合适?

在这个其他问题的HTTP请求方法的有效载荷,我们可以根据这个链接找到:

  • HEAD - 没有定义的正文语义.
  • GET - 没有定义的正文语义.
  • PUT - 支持身体.
  • POST - 支持身体.
  • DELETE - 没有定义的正文语义.
  • TRACE - 不支持身体.
  • 选项 - 支持身体但没有语义(可能在将来).

这是否意味着我不应该发送带有效负载的GET请求? 这样做有风险吗?

  • 就像让一些HTTP客户端库无法发送这样的有效载荷?
  • 或者我的Java API代码无法在某些应用程序服务器上移植?
  • 还要别的吗?

我发现ElasticSearch在GET请求上使用了这样的有效负载:

$ curl -XGET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy' -d '{
    "query": {
        "filtered" : {
            "query" : {
                "query_string" : {
                    "query" : "some query string here"
                }
            },
            "filter" : {
                "term" : { "user" : "kimchy" }
            }
        }
    }
}
'
Run Code Online (Sandbox Code Playgroud)

因此,如果这个受欢迎的图书馆没有人抱怨,那么也许我可以做同样的事情吗?

顺便说一句,我想知道混合queryString参数和JSON有效负载是否可行?就像这个ElasticSearch查询一样.如果是这样,是否有规则,以便我们知道哪些参数应该是queryString参数或有效负载参数?


在这里我们可以阅读: 带有请求体的HTTP …

java api get http elasticsearch

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

我应该使用不可变或可变数据结构表示数据库数据吗?

我目前正在用Scala编程,但我想这适用于任何函数式编程语言,或者更确切地说,任何编程语言都推荐不变性并且可以与数据库交互.

当我从数据库中获取数据时,我将其映射到模型数据结构.在函数式编程中,数据结构往往是不可变的.但是数据库中的数据是可变的,所以我想知道我的模型是否也应该是可变的.一般来说,在这种情况下,什么是好的和广为接受的做法?

按照Martin Odersky在Coursera上的Scala课程,我记得他说过:

最好使用不可变数据结构,但是当你想与现实世界交互时,使用可变数据结构会很有用.

所以,我再次想知道该怎么做.截至目前,我的数据结构是不可变的,当我想更新数据库中的记录时,这会导致很多样板代码.使用可变模型有助于减少这种锅炉板吗?

(我已经问了一个类似于我使用的技术的类似问题,但我对实际答案并不满意,所以我在这里概括了一下.)

database language-agnostic functional-programming immutability

12
推荐指数
3
解决办法
1083
查看次数

Spring @Transactional和JDBC autoCommit

在我的实际应用程序中,我有一个DBCP连接池,它没有设置JDBC autoCommit = false.它似乎有默认的autoCommit = true.这可能是一个错误,但我想了解更改此参数的影响.

我正在使用: - 带有@Transactional注释的Spring - 带有JDBC阅读器和编写器的Spring Batch,最终使用JdbcTemplate自定义tasklet

我想知道Spring是否在当前连接上设置autoCommit = false,如果它在TransactionManager处理的事务的上下文中.它是否覆盖默认设置?因为在我看来这样做是有意义的.

spring jdbc spring-batch

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

在SBT中范围库依赖项的特定语法?

http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Library-Dependencies.html

如果要在类路径中仅显示依赖于Test配置而不是Compile配置的依赖项,请像这样添加%"test":

libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3" % "test"
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我们使用这种表示法吗?我的意思是最后的配置?

为什么我们不写这样的东西:

libraryDependencies in Test += "org.apache.derby" % "derby" % "10.4.1.3"
Run Code Online (Sandbox Code Playgroud)

scala sbt

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

在Slick中自定义映射到嵌套的case类结构(超过22列)

我正在尝试将超过22列的数据库行映射到案例类树.我宁愿不使用HList,因为我不想使用该API,还有一些我在某处读过的指数编译时间反馈......

我已经读过Stefan Zeiger回答的这个帖子:如何使用嵌套元组或HLists处理带有Slick的> 22列表?

我已经看过这个测试,它展示了如何定义自定义映射函数,我想这样做:

https://github.com/slick/slick/blob/2.1/slick-testkit/src/main/scala/com/typesafe/slick/testkit/tests/JdbcMapperTest.scala#L129-141

def * = (
        id,
        (p1i1, p1i2, p1i3, p1i4, p1i5, p1i6),
        (p2i1, p2i2, p2i3, p2i4, p2i5, p2i6),
        (p3i1, p3i2, p3i3, p3i4, p3i5, p3i6),
        (p4i1, p4i2, p4i3, p4i4, p4i5, p4i6)
      ).shaped <> ({ case (id, p1, p2, p3, p4) =>
        // We could do this without .shaped but then we'd have to write a type annotation for the parameters
        Whole(id, Part.tupled.apply(p1), Part.tupled.apply(p2), Part.tupled.apply(p3), Part.tupled.apply(p4))
      }, { w: Whole =>
        def f(p: Part) = Part.unapply(p).get …
Run Code Online (Sandbox Code Playgroud)

scala slick

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

Intl.NumberFormat 在 Jest 单元测试中表现不正确?

Mozilla的网站说:

var number = 123456.789;

console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' })
.format(number));

// expected output: "123.456,79 €"
Run Code Online (Sandbox Code Playgroud)

但是在我的 Jest 单元测试中,根据我和 Mozilla 的示例,我得到的输出€ 123,456.79对于fr-FR语言环境不正确。

我尝试加载 polyfills 和区域设置数据,但似乎没有解决问题

import 'intl';
import 'intl/locale-data/complete';
import 'intl/locale-data/jsonp/fr';
import 'intl/locale-data/jsonp/fr-FR';
import 'intl/dist/Intl.complete';
Run Code Online (Sandbox Code Playgroud)

知道有什么问题吗?

javascript localization internationalization number-formatting jestjs

12
推荐指数
3
解决办法
5238
查看次数

java中距离的国际化

是否有可能在Java中没有任何额外的库来使距离国际化?

我的意思是有可能处理日期,时间,货币,数字...

我本来希望找到一个NumberFormat.getDistanceInstance或者什么.

是否已经嵌入了类似的东西,或者我应该建立自己的距离国际化系统(大多数英里对公里)

java localization distance internationalization java-ee

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

在ElasticSearch上等效的Solr的copyField?

有人能告诉我ElasticSearch上是否有相同的Solr copyField指令?

我知道有多字段类型: http ://www.elasticsearch.org/guide/reference/mapping/multi-field-type.html当你想在同一个字段上应用多个分析器时,这很好.

但它并不完全相同.Solr允许将多个字段"合并"为一个:

<field name="id" type="string" indexed="true" stored="true"/>
<field name="name" type="string" indexed="true" stored="true"/>
<field name="subject" type="string" indexed="true" stored="true"/>
<field name="location" type="string" indexed="true" stored="true"/>
<field name="all" type="text" indexed="true" stored="true" multiValued="true"/>
<copyField source="*" dest="all"/>
Run Code Online (Sandbox Code Playgroud)

这个插件很有前途:https: //github.com/yakaz/elasticsearch-analysis-combo

因为它允许在使用ElasticSearch多值字段时将结果作为单个字段返回.但它仍然不完全相同,因为它不允许"合并"多个字段.


我想要Combo分析器和Solr copyField的组合.

我有一个博客文章模型(标题/描述字段),并希望在单个字段"blogContent"上复制标题和描述,我将在其中应用2个不同的分析器.

ElasticSearch有解决方案吗?

lucene search solr elasticsearch elasticsearch-5

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

我们可以一起使用REST + Event Sourcing + CQRS吗?

我了解REST +事件采购的基础知识.我从未使用过严格的RESTful API,也没有参与任何Event Sourcing项目.

有人可以解释两者是否可以一起使用?

在事件源中,客户端发送事件,这是否意味着在服务器上有一个事件集合,API的所有POST都将在该集合上,以向其添加事件?

客户端如何发现它可以发送到服务器的命令?

api rest domain-driven-design event-sourcing dddd

11
推荐指数
3
解决办法
5518
查看次数