小编Sam*_*rry的帖子

了解Java 8中的Spliterator,Collector和Stream

我无法理解StreamJava 8中的接口,特别是它SpliteratorCollector接口有关的地方.我的问题是我根本就没有理解SpliteratorCollector接口,并因此在Stream界面依然有些模糊了我.

究竟什么是a Spliterator和a Collector,我该如何使用它们?如果我愿意自己编写SpliteratorCollector(也可能是我自己的编写Stream过程),我应该做什么而不是做什么?

我阅读了一些散布在网络上的例子,但由于这里的所有内容都是新的并且可能会有变化,因此示例和教程仍然非常稀少.

java lambda java-8 spliterator

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

无法从START_OBJECT标记中反序列化java.util.ArrayList的实例

我正在尝试POST一个List自定义对象.请求正文中的我的JSON是这样的:

{
    "collection": [
        {
            "name": "Test order1",
            "detail": "ahk ks"
        },
        {
            "name": "Test order2",
            "detail": "Fisteku"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

处理请求的服务器端代码:

import java.util.Collection;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;


@Path(value = "/rest/corder")
public class COrderRestService {

    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Response postOrder(Collection<COrder> orders) {
        StringBuilder stringBuilder = new StringBuilder();
        for (COrder c : orders) {
            stringBuilder.append(c.toString());
        }
        System.out.println(stringBuilder);
        return Response.ok(stringBuilder, MediaType.APPLICATION_JSON).build();
    }
}
Run Code Online (Sandbox Code Playgroud)

实体COrder:

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class …
Run Code Online (Sandbox Code Playgroud)

java spring jax-rs resteasy jackson

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

将LinkedHashMap转换为复杂对象

我有一个应用程序,它使用Jackson将一些数据存储在DynamoDB中,以便将我的复杂对象编组为JSON.

例如,我正在编组的对象可能如下所示:

private String aString;
private List<SomeObject> someObjectList;
Run Code Online (Sandbox Code Playgroud)

SomeObject可能如下所示:

private int anInteger;
private SomeOtherObject;
Run Code Online (Sandbox Code Playgroud)

和SomeOtherObject可能如下所示:

private long aLong;
private float aFloat; 
Run Code Online (Sandbox Code Playgroud)

这很好,对象被编组没有问题,并作为JSON字符串存储在DB中.

当需要从DynamoDB检索数据时,Jackson会自动检索JSON并将其转换回来...除了'someObjectList'返回的List<LinkedHashMap>不是List<SomeObject>!这是杰克逊的标准行为,这不是一个错误.

所以现在这会导致问题.我的代码库认为它处理一个List<SomeObject>但现实是它处理一个List<LinkedHashMap>!我的问题是如何让我的LinkedHashMap回到'SomeObject'.显然这是一个手动过程,但我的意思是我甚至无法提取值.

如果我这样做:

for (LinkedHashMap lhm : someObjectList) {
    // Convert the values back
}
Run Code Online (Sandbox Code Playgroud)

我收到一个编译错误,告诉我someObjectList的类型为'SomeObject'而不是LinkedHashMap.

如果我这样做:

for (SomeObject lhm : someObjectList) {
    // Convert the values back
}
Run Code Online (Sandbox Code Playgroud)

我收到运行时错误,告诉我LinkedHashMap无法转换为'SomeObject'.

java casting linkedhashmap jackson

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

什么是HTTP方法PURGE?

今天使用Postman时我注意到了方法选项PURGE.我从未在实践中遇到它,也无法找到它的目的的解释.

这个方法用的是什么,它来自何处,是否有某种规格?

http http-method

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

泽西2注射源为multipart formdata

我有一个方法:

@POST
@Consumes("multipart/form-data")
@Produces( {"text/xml"})
public Response processForm(
    @FormDataParam("myparam") InputStream is,
    @FormDataParam("myparam") FormDataContentDisposition detail)
Run Code Online (Sandbox Code Playgroud)

这与Jersey 1.x一起运作良好.

我升级到2.0 m11.

现在我收到以下错误:

12/01/2013 11:15:04 AM org.glassfish.jersey.server.ApplicationHandler initialize
INFO: Initiating Jersey application, version Jersey: 2.0-m11 2012-12-21 12:34:15...
12/01/2013 11:15:04 AM org.glassfish.jersey.internal.Errors processErrors
SEVERE: The following errors and warnings have been detected:
WARNING: No injection source found for a parameter of type public javax.ws.rs.core.Response com.plutext.FileUpload.processForm(java.io.InputStream,org.glassfish
.jersey.media.multipart.FormDataContentDisposition) at index 0.
Run Code Online (Sandbox Code Playgroud)

我找到了 http://java.net/jira/browse/JERSEY-1413并提交了http://java.net/projects/jersey/lists/commits/archive/2012-09/message/126这似乎相关,但它的对我来说不明白如何解决这个问题.

更新

我创建了一个servlet,它在org.glassfish.jersey.server.ApplicationHandler初始化之前在Tomcat中运行:

public class Jersey2Init extends HttpServlet {

    private static final …
Run Code Online (Sandbox Code Playgroud)

java multipartform-data jax-rs jersey tomcat7

28
推荐指数
2
解决办法
5万
查看次数

从JAX-RS服务发送重定向

是否可以将JAX-RS Web服务重定向到另一个网页?

就像你使用Servlet一样response.sendRedirect("http://test/test.html").

JAX-RS Web服务本身应该重定向.我正在使用RESTEasy,如果这是相关的.

java redirect jax-rs

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

Java 8中"If/Throw,Else/Return"逻辑的简写?

在Java 8中if/throw else/return是否有更短的语法?java.util.Optional提供了在一个语句中完成此操作的方法,但它需要Optional为每个具有非空引用的调用创建一个实例.

这可以在一个声明中完成吗?

public static MyEnum fromString(String value) {
    MyEnum result = enumMap.get(value);
    if (result == null)
        throw new IllegalArgumentException("Unsupported value: " + value);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

可选示例(错误,每次都需要可选实例)

public static MyEnum fromString(String value) {
    return Optional.ofNullable(enumMap.get(value)).orElseThrow(
        () -> new IllegalArgumentException("Unsupported value: " + value));
}
Run Code Online (Sandbox Code Playgroud)

java java-8

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

用Jackson反序列化多态类型

如果我有这样的类结构:

public abstract class Parent {
    private Long id;
    ...
}

public class SubClassA extends Parent {
    private String stringA;
    private Integer intA;
    ...
}

public class SubClassB extends Parent {
    private String stringB;
    private Integer intB;
    ...
}
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法来反序列化不同的@JsonTypeInfo呢?在我的父类上使用此批注:

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "objectType")
Run Code Online (Sandbox Code Playgroud)

我宁愿不必强制我的API的客户端包括"objectType": "SubClassA"反序列化子Parent类.

@JsonTypeInfo杰克逊是否提供了一种注释子类并通过唯一属性将其与其他子类区分开来的方式,而不是使用?在上面的示例中,这将是"如果JSON对象"stringA": ...将其反序列化为SubClassA,如果它已将其"stringB": ...反序列化为SubClassB".

json jackson deserialization

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

如何下载Java EE 7 API文档(zip)?

我只能在这里
访问在线版本:http://www.oracle.com/technetwork/java/javaee/documentation/index.html

我尝试检查Java EE下载页面:http:
//www.oracle.com/ technetwork/JAVA/JavaEE的/下载/ index.html的

在此输入图像描述
但遗憾的是,我似乎无法找到仅下载Java EE 7 API文档的链接.
有没有办法在.zip下载它以供离线参考?

java api zip download java-ee

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

RESTEasy客户端框架身份验证凭据

RESTEasy(一个JAX-RS实现)有一个很好的客户端框架,例如:

ServiceApi client = ProxyFactory.create(ServiceApi.class, baseUri);
Run Code Online (Sandbox Code Playgroud)

如何为此客户端提供HTTP身份验证凭据?

java http jax-rs resteasy

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