小编Bar*_*tek的帖子

为什么不同类型的空集合相等?

下面的机制是什么使得不同的类型?

import static org.testng.Assert.assertEquals;
Run Code Online (Sandbox Code Playgroud)
@Test
public void whyThisIsEqual() {
    assertEquals(new HashSet<>(), new ArrayList<>());
}
Run Code Online (Sandbox Code Playgroud)

java collections testng

52
推荐指数
4
解决办法
3269
查看次数

如何在邮递员中使用参数和身体进行发布请求

我有端点,它需要很少的参数和主体作为输入,我想在Postman中测试它.但是,当我在Postman后端输入数据到'form-data'部分时抛出错误,我错过了身体.如果我尝试将输入数据输入'raw'(Text),它会抱怨我忘记了参数.我怎样才能将params和body结合起来?

编辑:

  1. 'form-data'部分 在此输入图像描述

  2. '原始'部分 在此输入图像描述

该端点的参数如下:

@RequestParam("to") String to,
@RequestParam("subject") String subject,
@RequestBody String content,
@RequestParam("isMultipart") Boolean isMultipart,
@RequestParam("isHtml") Boolean isHtml
Run Code Online (Sandbox Code Playgroud)

postman

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

在 Helm values 属性中传递数组

我想在 Helm 的 yaml(值文件)中将数组作为属性传递。我试过的:

  1. 试图。

    elasticsearch:
      uri: "[\"127.0.0.1:9200\",\"127.0.0.2:9200\"]"
    
    Run Code Online (Sandbox Code Playgroud)

    错误:

    ReadString: 期望 " 或 n, 但发现 [, 在 #10 字节的 ...|RCH_URL 中发现错误":["127.0.0.1|..., 更大的上下文 ...|{"apiVersion":"v1", "数据":{"ELASTIC_SEARCH_URL": ["127.0.0.1:9200","127.0.0.2:9200"],"LOGS_ENV_PREFI|...

  2. 试图。根据官方掌舵站点如何传递数组

    elasticsearch:
      --set uri={127.0.0.1:9200,127.0.0.2:9200}
    
    Run Code Online (Sandbox Code Playgroud)

    有错误:

    将 YAML 转换为 JSON 时出错:yaml:第 15 行:此上下文中不允许映射值

  3. 试图。

     elasticsearch:
       uri: 
       - 127.0.0.1:9200
       - 127.0.0.2:9200
    
    Run Code Online (Sandbox Code Playgroud)

    与 1 相同的异常失败。

编辑:实际上在我的情况下,当时在 YAML 文件中没有使用 helm 值,所以我需要另一种格式,最后的解决方案是将 uri 作为带单引号的字符串传递:

 elasticsearch:
   uri: '["127.0.0.1:9200","127.0.0.2:9200"]'
Run Code Online (Sandbox Code Playgroud)

不过@Marcin 的回答是正确的。

kubernetes kubernetes-helm

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

如何在springboot中为集成测试创建liquibase变更集?

我想通过liquibase changeset进行集成测试的模拟数据,如何使其不影响真正的数据库?我从这里找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案.

integration-testing mocking liquibase spring-boot

6
推荐指数
2
解决办法
2572
查看次数

liquibase 变更集中的 xml 比 sql 文件更好吗

我认为XML文件读起来更清晰,但是它比SQL格式有优势吗?我[在这里]找到了一些信息(http://forum.liquibase.org/topic/liquibase-sql-vs-xml-command-changesets),但我很高兴听到其他人的声音。

liquibase

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

列出远程分支 - git branch -a vs git ls-remote --heads origin

但是,以下post命令应该对远程分支产生相同的输出

git fetch
git branch -a 
Run Code Online (Sandbox Code Playgroud)

显示执行时不可见的远程分支

git ls-remote --heads origin
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?

[澄清]

(TA216441) $ git pull
Your configuration specifies to merge with the ref 'refs/heads/TA216441'
from the remote, but no such ref was fetched.

(TA216441) $ git fetch
(TA216441) $ git branch -a
* TA216441
  TA216442
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/TA212425
  remotes/origin/TA216441
  remotes/origin/TA219346
  remotes/origin/TA220305
  remotes/origin/TA223738
  remotes/origin/master

(TA216441) $ git ls-remote --heads origin
  hash-1 refs/heads/DE18756_2
  hash-2 refs/heads/TA212425
  hash-2 refs/heads/TA219346
  hash-3 refs/heads/TA220305
  hash-4 refs/heads/master
Run Code Online (Sandbox Code Playgroud)

git github

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

预期:null 但:是 &lt;[null]&gt; - Hamcrest 和 jsonPath

我想断言来自其余控制器的 json 输出,但我得到“预期:null 但:was <[null]>”。这是我的测试代码:

mockMvc.perform(post(TEST_ENDPOINT)
            .param("someParam", SOMEPARAM)
            .andDo(print())
            .andExpect(status().is2xxSuccessful())
            .andExpect(jsonPath("*.errorMessage").value(IsNull.nullValue())); 
Run Code Online (Sandbox Code Playgroud)

杰森:

{
    "some_string": {
        "errorMessage": null
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现类似的问题How to assertThat Something is null with Hamcrest? ,但这两个答案都不起作用。也许这是由于 jsonPath,导致它在 [] 括号中返回空值?是断言框架的bug吗?

testing hamcrest jsonpath

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

RestTemplate 与正文一起获取

如何使用休息模板来获取身体?

基于以下问题:POST request via RestTemplate in JSON,我尝试通过 HttpEntity 使用 body 进行 GET (只需检查是否可能),但接收失败:

缺少必需的请求正文

对于 HttpMethod.POST:localhost:8080/test/post主体已正确添加,但对于 HttpMethod.GET localhost:8080/test/get它未映射。我的代码如下:

@RestController
@SpringBootApplication
public class DemoApplication {

  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

  private final RestTemplate restTemplate = new RestTemplate();

  @GetMapping("/test/{api}")
  public SomeObject test(@PathVariable("api") String api) {
    String input = "{\"value\":\"ok\"}";

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<String> entity = new HttpEntity<>(input, headers);

    HttpMethod method = "get".equals(api) ? HttpMethod.GET : HttpMethod.POST;
    String url = "http://localhost:8080/" …
Run Code Online (Sandbox Code Playgroud)

resttemplate spring-boot

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

当列表中包含空值时,如何使用流获取日期列表的最大值

我有以下代码:

List<LocalDate> dates = Arrays.asList(null, null, 
    LocalDate.now(), LocalDate.now().minusDays(9));

LocalDate max = dates.stream()
    .max(Comparator.nullsLast(Comparator.naturalOrder())).get();
Run Code Online (Sandbox Code Playgroud)

当我尝试获取最大值时会产生空指针异常,但是当尝试获取最小值时会正常工作。这似乎不明原因max发生Comparator该处理空值。如何使用保留空值的流对此类数组进行排序。

顺便说一句,我检查了的JavaDoc max,它指出:

如果最大元素为null,则@throws NullPointerException

编辑:

LocalDate max = dates.stream()
    .max(Comparator.nullsLast(Comparator.naturalOrder())).orElse(null);
Run Code Online (Sandbox Code Playgroud)

也会抛出空指针。

java list comparator java-8 java-stream

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

组内的组的平均值 - 流

如何使用流计算组的平均值.下面的代码我想转换为流解决方案.

public static void main(String[] args) {
    List<Item> items = Arrays.asList(
        new Item("A", 1.0),
        new Item("A", 1.0),
         new Item("B", 1.0)
    );

    System.out.println(averageForGroup(items));
}

public static double  averageForGroup(List<Item> items) {
    Set<String> uniqueGroups = new HashSet<>();
    double sum = 0;
    for (Item i : items) {
        String groupName = i.getGroupName();

        if (!uniqueGroups.contains(groupName)) {
            uniqueGroups.add(groupName);
        }
        sum += i.getValue();
    }

     return sum / uniqueGroups.size();
}
Run Code Online (Sandbox Code Playgroud)

物品类:

public class Item {

    private String groupName;
    private Double value;

    // Full-args constructor
    // Getters and setters …
Run Code Online (Sandbox Code Playgroud)

java list java-8 java-stream

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

直到找到值 - 可选

我想在找到第一个值时终止流的执行.但是,当我在下面运行代码时,它会显示即使第一个方法存在值,也会调用两个方法.

public static void main(String[] args) {

        Optional<String> s = Stream.of(first(), second())
                .filter(Optional::isPresent)
                .findFirst()
                .flatMap(Function.identity());

        System.out.println(s.get());
    }

    private static Optional<String> first() {
        System.out.println("first");
        return Optional.of("someValue");
    }

    private static Optional<String> second() {
        System.out.println("second");
        return Optional.empty();
    }
Run Code Online (Sandbox Code Playgroud)

我在文档中检查了:

  1. 存在

如果存在值,则返回{@code true},否则返回{@code false}.

  1. 使用FindFirst()

返回描述此流的第一个元素的{@link Optional},如果流为空,则返回空的{@code Optional}.如果流没有遭遇顺序,则可以返回任何元素.

所以它遇到的第一个条件,第二个条件似乎也满足,因为它返回:

first
second
someValue
Run Code Online (Sandbox Code Playgroud)

如果第一个值存在,如何退出执行,而不执行第二个方法?

java optional java-stream

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

使用 fromValue 函数代替 valueOf、java 枚举有什么好处?

我看到一些程序员在枚举结构中使用名为 fromValue 的函数。如果我们可以使用 valueOf,它的目的是什么?例如,我发现了这样的事情:

public static FooEnum fromValue(String v) {  
    return valueOf(v);  
}
Run Code Online (Sandbox Code Playgroud)

java enums value-of

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

H2 - Oracle - liquibase - org.h2.jdbc.JdbcSQLException:找不到表“all_sequences”;

我尝试将 H2 用于测试目的添加到 Spring Boot 中application-test.yml,我的生产数据库是 Oracle。我想通过 liquibase 填充 H2 模式,但收到以下错误:

引起:org.h2.jdbc.JdbcSQLException:找不到表“all_sequences”;SQL语句:

我的配置如下:

spring:
  profiles:
    active: test
  datasource:
    url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=Oracle
    username: sa
    password:
    platform: h2
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: none
    generate-ddl: true

  h2:
    console:
      enabled: true
      path: /console

liquibase:
  url: ${spring.datasource.url}
  enabled: true
  user: sa
  password:
  change-log: classpath:liquibase/test-master.xml
  drop-first: true
Run Code Online (Sandbox Code Playgroud)

如何调整上面的配置,我花了几个小时,但不知道如何使它工作。

java liquibase spring-boot

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