小编Dar*_*enn的帖子

.map 与 .peek - Intellij 建议

collection.stream().map(x -> {
    if(condition) {
        x.setY(true);
    }
    return x;
}).collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

我有一个集合,我想在x满足某个条件时在变量中设置一些东西。我正在这样做,就像上面的代码中显示的那样。它完成了它的工作,并且有效。但是,IntelliJ 建议我.map.peek. 所以代码看起来像:

collection.stream().peek(x -> {
    if(condition) {
        x.setY(true);
    }
}).collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

它短了一行,但从我在 peek 文档中读到的:

API 注意:此方法的存在主要是为了支持调试,您希望在其中查看元素流经管道中的某个点时的情况:

那么,IntelliJ 的建议是否具有误导性?

java

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

无法分配 - 它是只读的 - C#

public struct Osoba{
    public string nazwisko;
    [...]
}

for (int k = 0; k < l; k++)
            {
                dlugosc = osoba[k].nazwisko.Length;
                [...]
                if (c[0] == 's' && c[1] == 'k' && c[2] == 'i')
                {
                    osoba[k].nazwisko[dlugosc - 3] = '*';
                    osoba[k].nazwisko[dlugosc - 2] = '*';
                    osoba[k].nazwisko[dlugosc - 1] = '*';
                }
            }
Run Code Online (Sandbox Code Playgroud)

你好,我一直在尝试替换3个字符串的最后一个字母,但是我得到了这个错误:

属性或索引器'string.this [int]'无法分配 - 它是只读的\

我试图谷歌它,解决方案主要是添加getter和setter(我还没有了解它)但它没有帮助我.为什么我不能修改我的字符串,即使我认为一切都是公开的?

c#

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

OpenJDK 11 和 macOS 不支持 ZGC?

我正在尝试使用 ZGC 垃圾收集器运行 Spring Boot 应用程序,并传入以下 JVM 选项build.gradle

bootRun {
    jvmArgs = ["-XX:+UnlockExperimentalVMOptions", "-XX:+UseZGC", "-Xlog:gc*"]
}
Run Code Online (Sandbox Code Playgroud)

运行应用程序 ( gradle bootRun) 时出现以下错误:

> Task :bootRun FAILED
Error occurred during initialization of VM
Option -XX:+UseZGC not supported
Run Code Online (Sandbox Code Playgroud)

java - 版本:

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我正在运行 10.15.2 (19C57) 版本的 macOS (Catalina)。只是 macOS 的问题吗?

java garbage-collection gradle java-11 zgc

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

日期与时间戳 - 有关日期格式的最佳实践

这篇文章的目的是与语言无关。在设计包含日期的 API 时,您应该注意什么?拥有以下可能的优点: 2016-11-01T20:44:39Z而不是像这样以毫秒为单位的时间戳:1583749154495

根据What pattern should be used to parse RFC 3339 datetime strings in java,即使 RFC 3339 格式也可能有所不同。为什么不在所有地方都使用时间戳,例如在构建 REST 后端 API 时?这样做的另一个可能的优点是,您将时间戳作为数字发送到前端,然后前端库负责处理时区等事务,向每个用户显示调整后的日期输出。

language-agnostic architecture timestamp date

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

可选的类重构

我写了这个丑陋的生物:

Optional<Transaction> secondSide = findSecondSide(transaction.getId());
        if(secondSide.isPresent()) {
            secondSide.get().setFlag("Y");
            save(secondSide.get());
        }
Run Code Online (Sandbox Code Playgroud)

有没有办法可以重构这个,而不使用isPresent()get()

java optional

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