小编Jin*_*won的帖子

如何使用Jackson将JSON字符串解析为数组

我有String以下值:

[
  {
    "key1": "value11",
    "key2": "value12"
  },
  {
    "key1": "value21",
    "key2": "value22"
  }
]
Run Code Online (Sandbox Code Playgroud)

以下课程:

public class SomeClass {
    private String key1;
    private String key2;
    /* ... getters and setters omitted ...*/
}
Run Code Online (Sandbox Code Playgroud)

我想将它解析为a List<SomeClass>或aSomeClass[]

使用杰克逊 这是最简单的方法ObjectMapper吗?

java json jackson

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

JAXB:需要所有元素的命名空间前缀

我正在使用Spring WebServiceTemplate进行webservice调用,该调用使用JAXB生成请求XML.我的要求需要所有元素(包括root)在SOAP请求中具有名称空间前缀(只有一个名称空间).

例如:

<ns1:Login xmlns:ns1="www.example.com/a">
    <ns1:username>abc</ns1:username>
    <ns1:password>abc</ns1:password>
</ns1:Login>
Run Code Online (Sandbox Code Playgroud)

但我得到了

<Login xmlns="www.example.com/a">
    <username>abc<username>
    <password>abc<password>
</Login>
Run Code Online (Sandbox Code Playgroud)

xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="www.example.com/a"   xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ilreq="www.example.com/a" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:complexType name="Login">
    <xs:sequence>
        <xs:element name="username" type="xs:string"/>
        <xs:element name="password" type="xs:string"/>
    </xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

从XSD生成的Java类

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Login", propOrder = {
    "username",
    "password"
})

@XmlRootElement
public class Login {

@XmlElement(required = true)
protected String username;
@XmlElement(required = true)
protected String password;
......
}
Run Code Online (Sandbox Code Playgroud)

package-info.java

@javax.xml.bind.annotation.XmlSchema(
    namespace = "www.example.com/a",
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package authenticator.beans.login;
Run Code Online (Sandbox Code Playgroud)

想知道如何使用Namespace前缀生成包含root的所有元素的请求XML.

java xml spring-ws jaxb

56
推荐指数
4
解决办法
12万
查看次数

JPA Hibernate多对多级联

我正在使用JPA 2.0和hibernate.我有一个User类和一个Group类,如下所示:

public class User implements Serializable {
    @Id
    @Column(name="USER_ID")
    private String userId;

    @ManyToMany
    @JoinTable(name = "USER_GROUP",
               joinColumns = {
                   @JoinColumn(name = "GROUP_ID")
               },
               inverseJoinColumns = {
                   @JoinColumn(name = "USER_ID")
               }
    )
    private Set<Group> groupList;

    //get set methods
}

public class Group
{
    @Id
    @Column(name="GROUP_ID")
    private String groupId;

    @ManyToMany(mappedBy="groupList")
    private Set<User> memberList;
    //get set methods
}
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个用户和组,然后将用户分配给该组.

我想要的是当我删除该组时,该组将被删除(当然),该组所拥有的所有用户组关系将自动从USER_GROUP连接表中删除,但用户本身不会从USER表.

使用上面的代码,当我删除一个组时,只删除GROUP表中的行,并且用户仍然会在USER_GROUP连接表中有一个已删除组的条目.

如果我将Cascade放在User类中,如下所示:

@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "USER_GROUP",
joinColumns =
{
    @JoinColumn(name = "GROUP_ID")
},
inverseJoinColumns =
{
    @JoinColumn(name = "USER_ID")
})
private Set<Group> …
Run Code Online (Sandbox Code Playgroud)

many-to-many hibernate jpa cascade jpa-2.0

49
推荐指数
3
解决办法
6万
查看次数

为什么Java 8中没有BooleanConsumer?

我担心这有点愚蠢的问题.

有没有人可以告诉我为什么没有BooleanConsumer相反的BooleanSupplier

除了"因为根本没有"之外还有其他原因吗?

我应该创建自己的吗?还是我错过了别的什么?

public interface BooleanConsumer {

    void accept(boolean value);

    default BooleanConsumer andThen(final BooleanConsumer after) {
        return v -> {
            accept(v);
            after.accept(v);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

更新

在哪里使用?我正在写一个使用大量消费者和供应商的图书馆.我成功写了一行,LongConsumer我遇到了一种情况,希望消费者接受一个来自方法结果的布尔值.说Files.deleteIfExist

java function java-8

43
推荐指数
3
解决办法
4796
查看次数

关于java:从`String.class`得到`String [] .class`,如果`String.class`是"运行时类型"怎么办?

这是一个变量Class<?> cls,现在我想得到另一个Array Class Object组件类型cls.

例如,如果cls= String.class,我想得到String[].class; if cls= int.class,我想知道int[].class,我该怎么办?

你看,这是很容易得到String.class来自String[].class:

Class<?> arrayCls = String[].class;
if(arrayCls.isArray()){
    Class<?> cls = arrayCls.getComponentType();
}
Run Code Online (Sandbox Code Playgroud)

但我找不到简单的方法来做相反的事情.

这是一个可能的解决方案:

Class<?> clazz = String.class;
Class<?> arrayClass = Array.newInstance(clazz,0).getClass();
Run Code Online (Sandbox Code Playgroud)

请问有什么打击方法吗?

java arrays reflection runtime class

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

我如何否定lambda谓词?

假设我有一串字符串.

final Stream<String> stream = ...;
Run Code Online (Sandbox Code Playgroud)

我想在修剪后过滤掉每个空字符串.

stream
    .filter(Objects::nonNull)
    .map(String::trim)
    .filter(v -> !v.isEmpty());
Run Code Online (Sandbox Code Playgroud)

有没有办法应用Predicate#negate()替换v -> !v.isEmpty()部分?

.filter(((Predicate) String::isEmpty).negate()) // not compile
Run Code Online (Sandbox Code Playgroud)

java lambda predicate java-8

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

版本:display-plugin-updates不了解maven-enforcer-plugin

所以,我正在尝试使用最新版本的一些插件.之前我已经使用了先决条件标签,但是很多资源(例子)说它应该被认为是弃用的,而且应该使用maven-enforcer-plugin.这是我的配置:

<plugin>
  <inherited>true</inherited>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-enforcer-plugin</artifactId>
  <version>1.3.1</version>
  <executions>
    <execution>
      <id>enforce-maven-3</id>
      <goals>
        <goal>enforce</goal>
      </goals>
      <configuration>
        <rules>
          <requireMavenVersion>
            <version>3.0.4</version>
          </requireMavenVersion>
        </rules>
        <fail>true</fail>
      </configuration>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行mvn版本时:display-plugin-updates我仍然得到这个文本:

[ERROR] Project does not define required minimum version of Maven.
[ERROR] Update the pom.xml to contain
[ERROR]     <prerequisites>
[ERROR]       <maven>3.0</maven>
[ERROR]     </prerequisites>
[INFO]
[INFO] Require Maven 2.0.6 to use the following plugin updates:
[INFO]   maven-jar-plugin ................................................ 2.4
[INFO]   maven-shade-plugin ............................................ 1.7.1
[INFO]
[INFO] Require Maven 2.2.1 to use the following plugin updates: …
Run Code Online (Sandbox Code Playgroud)

java maven maven-enforcer-plugin

25
推荐指数
2
解决办法
4088
查看次数

如何使用 Awaitility 等待至少指定的时间?

在我的考试课上,我确实需要睡一段时间。这是涉及定期远程调用的集成测试。

for (int i = 0; i < 16; i++) {
    // sleep some... should sleep some...
    Thread.sleep((int) TimeUnit.MINUTES.toMillis(4L)); // means as it means.
    // call remote api and check the response.
}
Run Code Online (Sandbox Code Playgroud)

使用 Awaitility 的等效表达式是什么?

我试过...

// Let's sleep for 4 minutes, no matter what happen!
Awaitility.await()
        .atLeast(Duration.ofMinutes(4L)) // what the hell does this mean, anyway?
        .untilTrue(new AtomicBoolean(false));
Run Code Online (Sandbox Code Playgroud)

似乎在默认轮询间隔之后就触发了超时。

在这种情况下,我不应该在第一次使用 Awaitillity 吗?

java multithreading thread-sleep awaitility

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

SQL选择您可能认识的人

The question you're asking appears subjective and is likely to be closed.

当我在填充标题字段时看到上面可怕的警告时,我并不感到惊讶.

我几乎每个线程都在阅读friends of friends,mutual friends但我不确定我找到了正确的解决方案.

对不起,我不擅长英语,也不擅长SQL.

如何在不擅长这两种语言的同时找到正确的答案?

我决定要问.我不会因为down-votes或任何duplication warnings 而让自己失望.

正如我想要的答案,我会尽可能真诚地写下来,因为任何进一步的类似问题都可以得到帮助.

我有一张朋友关系表.

FRIEND (TABLE)
-----------------------------------
PLAYER_ID(PK,FK)   FRIEND_ID(PK,FK)
-----------------------------------
1                  2                 // 1 knows 2
2                  1                 // 2 knows 1
1                  3                 // 1 knows 3
2                  3                 // 2 knows 3
2                  4                 // 2 knows 4
2                  5                 // 2 knows 5 // updated
3                  5 …
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

泽西岛 - 如何模拟服务

我使用"Jersey测试框架"对我的webservice进行单元测试.

这是我的资源类:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

// The Java class will be hosted at the URI path "/helloworld" 

@Path("/helloworld") 
public class class HelloWorldResource {

    private SomeService service;

    @GET 
    @Produces("text/plain")
    public String getClichedMessage() {
        // Return some cliched textual content
        String responseFromSomeService = service.getSomething();
        return responseFromSomeService;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在单元测试中模拟SomeService?

java unit-testing web-services jax-rs jersey

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