小编Evg*_*aev的帖子

可以跳过 Stream.peek() 进行优化

我在 Sonar 中发现了一条规则:

与其他中间 Stream 操作的一个关键区别是 Stream 实现可以自由地跳过调用以peek()达到优化目的。这可能会导致peek()意外地仅调用 Stream 中的部分元素或不调用任何元素。

另外,Javadoc中也提到了这一点:

此方法的存在主要是为了支持调试,您希望在元素流经管道中的某个点时查看它们

什么情况下可以java.util.Stream.peek()跳过?和调试有关系吗?

java side-effects java-8 java-stream sonarqube

30
推荐指数
2
解决办法
4144
查看次数

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

挥舞着Maven的Micronaut

我想从Spring Boot 2切换到Micronaut框架。而且我在Swagger设置上苦苦挣扎。

在Spring Boot 2项目中,我具有以下依赖关系:

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.6.1</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

和SwaggerConfig.class:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket swagger() {
        return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(getApiInfo())
            .select()
            .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
            .paths(PathSelectors.any())
            .build();
    }

    private ApiInfo getApiInfo() {
        return new ApiInfo("test",
            "",
            "",
            "",
            new Contact("", "https://test.test", ""),
            "",
            "");
    }
}
Run Code Online (Sandbox Code Playgroud)

它与Spring Boot 2应用程序一起完美启动swagger-ui。

我应该添加哪些依赖关系到Maven,以及应该创建哪些类才能为Micronaut项目获得相同的结果?

maven swagger micronaut

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

C中的链表实现错误

我有一个用C语言编写的程序.我很难理解我无法理解的效果.应用程序读取一系列单词作为命令行输入.在读取输入时,它将逐个单词放入列表中.然后它打印列表.让我感到震惊的是,为什么循环中添加的值正确打印,而循环中添加的值不是.我的意思是用户输入的值,只打印最后一个.此外,随着输入值的数量,它将被打印多次.两个主要的嫌疑人是push和printList方法:

void push(struct List * list, char* newValue){
    assert(list != NULL);
    assert(newValue != NULL);

    Node* node = createNode();
    node->data = newValue;
    node->next = NULL;
    if(list->firstNode != NULL){
        node->next = list->firstNode;
        list->firstNode = node;
    }
    else list->firstNode = node;
}

void printList(struct List * list){
    assert(list != NULL);
    Node *node = list->firstNode;
    while(node->next != NULL){
        printf("%s ", node->data);
        node = node->next;
    }
    if(node != NULL) printf("%s ", node->data);
}
Run Code Online (Sandbox Code Playgroud)

但我找不到任何错误.我做的是比较有和没有while循环的行为:

int main(){
    struct List* list = createList();
    char s[256];
    int a; …
Run Code Online (Sandbox Code Playgroud)

c

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

生成布尔流

你如何创建Boolean.FALSE长度为100的流?

我一直在努力的是:

  1. 本来我打算创建一个数组Boolean.FALSE.但是new Boolean[100]返回一个数组NULL.所以我合理地考虑使用流API作为方便Iterable且几乎(1)的Iterable操作工具;
  2. 没有Booleanno-params构造函数(2),因此我不能使用Stream.generate(),因为它接受Supplier<T>(3).

我发现的是Stream.iterate(Boolean.FALSE, bool -> Boolean.FALSE).limit(100);给我想要的东西,但它似乎不是很优雅的解决方案,恕我直言.

还有一个选择,我发现(4)是IntStream.range(0, 100).mapToObj(idx -> Boolean.FALSE);,在我看来更奇怪.

尽管这些选项不违反流API的管道概念,有没有更简洁的方法来创建流Boolean.FALSE

java java-8 java-stream

4
推荐指数
2
解决办法
501
查看次数

禁用 Spring Cloud Stream Rabbit 进行测试

我用:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
        <version>3.0.1.RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我需要禁用 Rabbit 来测试应用程序。我试过这个:

spring:
    cloud:
       config:
           enabled: false
           discovery:
               enabled: false
Run Code Online (Sandbox Code Playgroud)

它不起作用。

我需要做什么才能阻止 Rabbit 组件启动?

spring-rabbit spring-cloud-stream

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

Kotlin:如何用变量指定一个命名的辩论者?

假设我有两种方法:

    private fun method1(a: A): A {
        return a.copy(v1 = null)
    }

    private fun method2(a: A): A {
        return a.copy(v2 = null)
    }
Run Code Online (Sandbox Code Playgroud)

我可以这样写吗:

    private fun commonMethod(a: A, variableToChange: String): A {
        return a.copy($variableToChange = null)
    }
Run Code Online (Sandbox Code Playgroud)

换句话说,我可以使用变量来引用命名参数吗?

kotlin

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